python-列表推导式实例

本文主要分享python中列表推导式的使用,话不多说,直接举例

例1:过滤出长度大于3的人名

name = ['tom','lily','jacks','Pe','Steven']

方法1:用最常见的for循环

new_name = []
for x in name:
    if len(x)>3:
        new_name.append(x)
print(f'过滤出长度大于3的人名: {new_name}')

方法2:使用列表推导式

s1 = [x for x in name if len(x)>3]
print(f'过滤出长度大于3的人名: {s1}')

通过以上2种方式,可看出列表推导式简洁很多

一般来说如果操作列表简单的for循环+if可用列表推导式代替

例2:对1~10中能被3整除的数+1

s2 = [x+1 for x in range(10) if x%3==0]
print(f'对1~10中能被3整除的数+1: {s2}')

例3:求1~5中的偶数 与 1~5中的奇数一一组成一个元祖列表

s3 = [(x,y) for x in range(5) if x%2==0 for y in range(5) if y%2!=0]
print(f'求1~5中的偶数 与 1~5中的奇数一一组成一个元祖列表: {s3}')

例4:得到嵌套列表中每个列表的最后一个元素

list1 = [[1,2,3],[4,5,6],[7,8,9]]
s4 = [x[-1] for x in list1]
print(f'得到[3,6,9]: {s4}')

例5:员工工资>5000的人加200,否则加500

dict1 = {'name':'张三','salary':6000}
dict2 = {'name':'李四','salary':8000}
dict3 = {'name':'王五','salary':4000}
dict4 = {'name':'吴二','salary':3000}
list2 = [dict1,dict2,dict3,dict4]
s5 = [x['salary']+200 if x['salary']>5000 else x['salary']+500 for x in list2]
print(f'if工资>5000,加200,否则加500: {s5}')

除了列表推导式,我们还有集合推导式、字典推导式

集合推导式,就是将列表推导式[]换乘{}即可

name = ('tom','lily','jacks','Pe','Steven')
s1 = {x for x in name if len(x)>3}
print(f'集合推导式:过滤出长度大于3的人名: {s1}')

字典推导式

dict1 = {'A':'a','B':'b','C':'c','D':'c'}
d1 = {value:key for key,value in dict1.items()}
print(f'交换字典中的key和value,key相同取最后一个:{d1}')
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页