Python数据类型-列表推导式 (List Comprehension)

一般情况

列表推导式的一般语法结构:
new_list = [ x for x in iterable ]
其中的 iterable 表示可迭代的对象,包括字符串( str )、列表( list ),元组( tuple )、字典( dict )、集合( set ), 以及生成器(generator )等。
先来看几个简单的例子
str_list = [x.lower() for x in "Hello"]
print(str_list)

运行结果:

list_list = [x**2 for x in [1,2,3,4]]
print(list_list)

运行结果:

tuple_list = [x+2 for x in (1,2,3,4)]
print(tuple_list)

运行结果:

ge_list = [x for x in range(8)]
print(ge_list)

运行结果:

 两层 for 循环的列表推导式

列表推导式中,可以同时包含多个 for 循环,比如同时两个 for 循环,如下:
#for循环
print([x ** 2 + y for x in range(5) for y in range(4, 7)])

运行结果:

 上述结果跟下面的写法结果是一致的:

two_for_list = []
for x in range(5):
    for y in range(4,7):
        two_for_list.append(x**2+y) 
print(two_for_list)

运行结果:

 列表推导式中,三层或者三层以上的 for 循环一般很少用到。

使用两个变量来生成 list

d = {'x': '1', 'y':'2', 'z':'4'}
d_list = [k+'='+v for k,v in d.items()]
print(d_list)

运行结果:

 if 语句的列表推导式

if_list = [x**2 for x in range(10) if x%2==0]
print(if_list)

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值