列表生成式和字典生成式

发布时间 2023-12-11 17:23:04作者: 桃源氏

列表生成式

  • 列表生成式可以简化很多关于列表的操作

[1]定义列表

num_list = [i for i in range(6)]
print(num_list) # [0, 1, 2, 3, 4, 5]

[2]对列表中的值进行遍历的处理

# 对列表里的每个元素都进行去除空格的操作.strip(),在赋值给原来的列表
animal_list = ['   lion', 'dog    ', '   cat  ']
animal_list = [i.strip() for i in animal_list]
print(animal_list)  # ['lion', 'dog', 'cat']

[3]还可以进行复杂一些的嵌套循环

list_1 = [1, 2, 3]
list_2 = [4, 5, 6]


# 使list_1 和	list_2 列表里的元素两两相乘,并放入列表
list_3 = [i * j for i in list_1 for j in list_2]
print(list_3)  # [4, 5, 6, 8, 10, 12, 12, 15, 18]

#还可以在生成的列表中嵌套列表
list_4 = [[i, i * j] for i in list_1 for j in list_2]
print(list_4)
#[[1, 4], [1, 5], [1, 6], [2, 8], [2, 10], [2, 12], [3, 12], [3, 15], [3, 18]]

字典生成式

  • 有了列表推导式的概念,字典推导式学起来就非常简单了,语法格式如下:
# {键:值 for 迭代变量 in 可迭代对象 [if 条件表达式]}
dict_1 = {key: value for key in range(3) for value in range(3)}
print(dict_1)  # {0: 2, 1: 2, 2: 2}