_2_ 发表于 2020-4-27 13:36:47

列表降维的常用方法

今天在看 奇技淫巧 的时候,忽然发现了
【II】将多层嵌套列表展开
这个帖子,
于是自己又写了几个,
也是给大家提供一点思路

1.
import operator
from functools import reduce
a = [, , ]
print(reduce(operator.add, a))

2.
a = [, , ]
l=[]
for m in range(0,3):
    for i in a:
      l.append(i)
print(l)

3.from itertools import chain
b = [, , ]
c = list(chain(*b))
print(c)

4.a = [, , ]
a = eval('['+str(a).replace(' ','').replace('[','').replace(']','')+']')
print(a)

5.def flatten(a):
    if not isinstance(a, (list, )):
      return
    else:
      b = []
      for item in a:
            b += flatten(item)
    return b

6.ab = [, , ]
print()

永恒的蓝色梦想 发表于 2020-4-27 13:44:31

我记得我有写过def flatten(it, /):
    for i in it:
      if hasattr(i,'__iter__'):
            yield from flatten(i)
      
      else:
            yield i

_2_ 发表于 2020-4-27 13:45:30

永恒的蓝色梦想 发表于 2020-4-27 13:44
我记得我有写过

我想了好长时间。
然后就是这 6 个

zltzlt 发表于 2020-4-27 17:19:06

>>> print(list(__import__('itertools').chain.from_iterable([, , ])))
页: [1]
查看完整版本: 列表降维的常用方法