列表推导式
格式1:[i for i in 可以迭代的]
正常得到一个列表:
list1=[]
for i in range(1,10):
list1.append(i)
print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
通过推导式得到一个列表;
list1 = [i for i in range(1, 10)]
print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
格式2:[i for i in 可迭代的 if 条件]
如果列表里面只存储偶数:
# 正常情况下
list2=[]
for i in range(1,21):
if i % 2 == 0:
list2.append(i)
print(list2) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 通过推导式
list1 = [i for i in range(1, 21) if i % 2 == 0]
print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果想取出列表里面的单词:
list1 = ['12', 'world', '8', '你好', '100', 'welcome']
list2 = [w for w in list1 if w.isalpha()]
print(list2) # ['world', '你好', 'welcome']
格式3:[结果1 if 条件 else 结果2 for in 可迭代的]
如果h开头的则将首字母大写,否则全部大写
list1 = ['12', 'world', '8', '你好', '100', 'welcome', 'hello']
list2 = [w.title() if w.startswith('h') else w.upper() for w in list1]
print(list2) # ['12', 'WORLD', '8', '你好', '100', 'WELCOME', 'Hello']