首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维表为一

二维表为一
EN

Stack Overflow用户
提问于 2020-09-08 23:11:39
回答 3查看 42关注 0票数 0

我有多个维度列表输出,我想把它变成一个维度。

代码语言:javascript
复制
   a = [1,0,3,0,5,0]

   new_list = []

   l = [2,4,6]



   for i in a:
     new_list.append(l)



    print(new_list)

    #[[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-09 00:07:45

使用list-comprehension

代码语言:javascript
复制
s = [[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]

print([x for subl in s for x in subl])

输出:

代码语言:javascript
复制
[2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6]
票数 0
EN

Stack Overflow用户

发布于 2020-09-08 23:29:14

如果你想要一个平面列表,你真的应该extend这个列表,而不是append。但是如果你已经有了它,最快最安全的方法就是使用itertools:

代码语言:javascript
复制
list(itertools.chain.from_iterable(your_list))
票数 1
EN

Stack Overflow用户

发布于 2020-09-08 23:18:34

您可以递归地执行此操作:

代码语言:javascript
复制
def flatten(s):
    if s == []:
        return s
    if isinstance(s[0], list):
        return flatten(s[0]) + flatten(s[1:])
    return s[:1] + flatten(s[1:])

l = [[2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6], [2, 4, 6]]
res = flatten(l)
print(res) # prints [2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6, 2, 4, 6]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63796783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档