如何解决Python:缠绕两个列表
| 执行以下操作的pythonic方法是什么: 我有两个长度分别为n
的列表length0ѭ和b
,我想形成列表
c = [a[0],b[0],a[1],b[1],...,a[n-1],b[n-1]]
解决方法
c = [item for pair in zip(a,b) for item in pair]
阅读有关zip的文档。
为了与Ignacio的答案进行比较,请参见以下问题:如何使用列表理解将元组的元组转换为一维列表?
, c = list(itertools.chain.from_iterable(itertools.izip(a,b)))
, c = [item for t in zip(a,b) for item in t]
, c = [item for i in zip(a,b) for item in i]
或者,您可以尝试:
c=[(a,b)[i%2][i/2] for i in xrange(2*n)]
这当然不太可读
, 这是另一种方式:
sum(([x,y] for (x,y) in zip(a,b)),[])
(由于您同时形成临时元组(x,y)和临时列表[x,y],因此效率可能不高。)
, 怎么样(在Python 2和3上测试):
list(sum(zip(a,b),()))
或以numpy格式:
import numpy as np
np.vstack((a,b)).T.flatten().tolist()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。