Python中的嵌套列表推导式

python 嵌套列表中,如何利用列表推导式方便快捷的得出符合条件的新列表

学过列表推导式以后,我们可以很方便的在一维列表中筛选出符合条件的元素组成新列表。如下例:

在列表lis01中,想要将所有含2个o的字符串提取出来,组成新的列表:

lis01 = ['food','good','hello','book','what']

a = [i for i in lis01 if i.count('o')==2]

print(a)


如果现有一个嵌套列表,则可用下面的方法实现:

lis02=[['food','good','hello','book','what'],['cool','think','you','we','how']]
b = [i for j in lis02 for i in j if i.count('o')==2]
print(b)


遍历顺序一定不可以错。


此方法在列表中每个子元素列表的列表深度相同时可一步到位得出正确结果,如果是下面这种情况:

lis03=[[['food','feed','foot'],'good',['look','loof','like'],'book'],['cool','our','you','how']]
c = [i for j in lis03 for h in j for i in h if i.count('o')==2]
print(c)

则返回的结果是:['food', 'foot', 'look', 'loof']

不难看出,这个结构只是遍历了最内层也即本例中的第三层列表后得出的结果。


  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值