1、简单模式
只包含循环操作
- 常规写法
# 常规写法1
list_1 = []
for i in range(1, 10):
list_1.append(i)
print(list_1)
# 常规写法2
list_2 = []
for i in range(1, 10):
list_2.append(i*i)
print(list_2)
- 列表推导式
# 列表推导式1
list_1 = [x for x in range(1, 10)]
print(list_1)
# 列表推导式2
list_2 = [i*i for i in range(1, 10)]
print(list_2)
2、一般模式
包含判断和筛选
- 常规写法
# 常规写法1
list_1 = []
for i in range(1, 10):
if i % 2 == 0: # 只选取偶数
list_1.append(i)
print(list_1)
# 常规写法2
list_2 = []
for i in range(1, 10):
if i % 2 == 0: # 只选取偶数
list_2.append(i*i)
print(list_2)
- 列表推导式
# 列表推导式1
list_1 = [i for i in range(1, 10) if i % 2 == 0]
print(list_1)
# 列表推导式2
list_2 = [i*i for i in range(1, 10) if i % 2 == 0]
print(list_2)
3、变态模式
包含循环嵌套、判断和筛选
- 常规写法
list_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 常规写法1
list_1 = []
for i in list_:
for j in i:
if j % 2 == 0:
list_1.append(j)
print(list_1)
# 常规写法2
list_2 = []
for i in list_:
for j in i:
if j % 2 == 0:
list_2.append(j * j)
print(list_2)
- 列表推导式
list_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 列表推导式1
list_1 = [j for i in list_ for j in i if j % 2 == 0]
print(list_1)
list_2 = [j*j for i in list_ for j in i if j % 2 == 0]
print(list_2)