简述
- 列表内涵:list content
- 通过简单的方法创建列表
少废话,上例子
例1 用 for 创建列表
list1_1 = ['a', 'b', 'c']
list1_2 = [i for i in list1_1]
print(list1_2)
print(id(list1_1))
print(id(list1_2))
- 运行结果
['a', 'b', 'c']
2204059961992
2204049783816
有些像 copy()
例2 看看乘法“向”着谁
# 2.1
list2_1 = ['a', 'b', 'c']
list2_2 = [i * 5 for i in list2_1]
print(list2_2)
- 运行结果
['aaaaa', 'bbbbb', 'ccccc']
# 2.2
list2_1 = [1, 2, 3]
list2_2 = [i*5 for i in list2_1] # 既然乘法向着 i,不如写近一点
print(list2_2)
- 运行结果
[5, 10, 15]
例3 给列表加一张“滤纸”
# 过滤原 list 中的内容并放入新 list
list3_1 = [i for i in range(1,20)] # 生成一个从 1 到 20 的列表
list3_2 = [j for j in list3_1 if j%2 == 0] # % 为取余,此句可滤掉奇数
print(list3_2)
- 运行结果
[2, 4, 6, 8, 10, 12, 14, 16, 18]
例4 列表生成式可以嵌套
list4_1 = [i for i in range(1,4)]
print(list4_1)
list4_2 = [i for i in range(100,400) if i % 100 == 0]
print(list4_2)
# 列表生成可嵌套
c = [m+n for m in list4_1 for n in list4_2]
print(c)
'''
此代码与上面代码等价
for m in l1:
for n in l2:
print(m+n, end=' ')
'''
- 运行结果
[1, 2, 3]
[100, 200, 300]
[101, 201, 301, 102, 202, 302, 103, 203, 303]
例5 列表生式还能嵌入条件表达式
list5_1 = [1, 2, 3]
list5_2 = [10, 20, 30]
list5 = [m+n for m in list5_1 for n in list5_2 if m+n < 25]
print(list5)
- 运行结果
[11, 21, 12, 22, 13, 23]