关于python中列表的遍历和多层嵌套拆开(自用)

假设存在列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] ,则

使用遍历查询列表元素

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]];
for i in list_1:
print(i);控制台输出[1, 2],[3, 4, 5],[6, 7],[8],[9]

将多层嵌套拆开的方法有:

1.列表推导法:

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]];
list_2 = [i for j in list_1 for i in j] ;
print(list_2)控制台输出[1, 2, 3, 4, 5, 6, 7, 8, 9]

2.第三模块组合法

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]];
list_2 = []
for _ in list_1:
    list_2 += _
print(list_2)

3.使用sum

> list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] ;
> list_2 = sum(list_1,[]) ;
> print(list_2)

4.对于复杂一些的,如:list =[1,[2],[[3]],[[4,[5],6]],7,8,[9]],上面的方法就不好使了。得换个方法了,这里使用递归的方法解决。

> def flat(nums):
>     res = []
>     for i in nums:
>         if isinstance(i, list):
>             res.extend(flat(i))
>         else:
>             res.append(i)
>     return res

多层嵌套拆开参考资料


例题:假如存在列表goodslist=[[‘Iphone’, 5800], [‘Mac Pro’, 12000], [‘Bike’, 800], [‘Alex Python’, 89], [‘Starbuck Latte’, 30], [‘Cap’, 45], [‘Air conditioning’, 3000], [‘Ipad’, 4200]];,判断其含有Bike这一元素。
则:

goodslist=[['Iphone', 5800], ['Mac Pro', 12000], ['Bike', 800], ['Alex Python', 89], ['Starbuck Latte', 30], ['Cap', 45], ['Air conditioning', 3000], ['Ipad', 4200]];
list = [i for j in goodslist for i in j]
print(list)
print('Bike' in list)
  • 20
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值