格式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']