列表推导式

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

 

posted @ 2021-09-29 16:25  逍遥abin  阅读(147)  评论(0编辑  收藏  举报