- 代码简洁一些
- 支持多条件, 过滤,或拼接某些值
- 支持返回多值
- 是一种生成式
# 生成一个列表
print(list(range(1, 11)))
# 生成一个列表x^2
## 方法1: 返回x^2的数列
arr = []
for i in range(1, 11):
arr.append(i * i)
print(arr)
## 方法2:生成式
print([x * x for x in range(1, 11)])
##加条件
print([x * x for x in range(1, 11) if x % 2 == 0])
#返回2个值, 2个值之间要写+,总之不能是空格
print([m + n for m in "ABC" for n in "xyz"])
##############################################
# 实现ls
import os
print([d for d in os.listdir('.')])
print('---------------------')
## 字典的生成式
d = {'x': 'A', 'y': 'B'}
for k, v in d.items():
print(k, v)
# print([k,v for k,v in d.items()])
#返回2个值, 2个值之间要写+,总之不能是空格
print([k + v for k, v in d.items()])
## 栗子1: 返回小写
arr = ["Mao", "Tai"]
print([i.lower() for i in arr])
## 栗子2: 返回arr中字符串的小写
## 方法1:
L1 = ['Hello', 'World', 18, 'Apple', None]
arr_tmp = []
for i in L1:
if isinstance(i, str):
print(11)
arr_tmp.append(i.lower())
print(arr_tmp)
## 方法2: 生成式
print([i.lower() for i in L1 if isinstance(i, str)])