为了账号安全,请及时绑定邮箱和手机立即绑定

python2.x如何列表推导二维数组?

python2.x如何列表推导二维数组?

慕侠2389804 2019-02-21 07:58:33
>>> a = [[1, 2, 3], [4, 5, 6]] >>> b = [x for x in i for i in a] >>> b [1, 1, 2, 2, 3, 3] >>> c = [x for x in i for i in a] >>> c [4, 4, 5, 5, 6, 6] 如何解释上面代码的运行结果? 一般的得到的结果是[4, 4, 5, 5, 6, 6],但是偶然会得到[1, 1, 2, 2, 3, 3],这是为什么呢? 如何把[[1, 2, 3], [4, 5, 6]]用列表推导成[1,2,3,4,5,6]的形式?
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

b = [x for x in i for i in a] 在我的解释器中无法运行.

如何把[[1, 2, 3], [4, 5, 6]]用列表推导成[1,2,3,4,5,6]的形式?

>>> b = [item for sublist in a for item in sublist]
>>> b
[1, 2, 3, 4, 5, 6]

flattenstack overflow 上有详细的讨论, 上面的方法被发现是最快的,

查看完整回答
反对 回复 2019-03-01
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

a = [[1, 2, 3], [4, 5, 6]]
all = []
for i in a:
    all += i

没想到更简洁的方法。

查看完整回答
反对 回复 2019-03-01
?
侃侃无极

TA贡献2051条经验 获得超10个赞

In [5]: b = [x for i in a for x in i]

In [6]: b
Out[6]: [1, 2, 3, 4, 5, 6]

三维的
In [7]: aa = [[[1], [2], [3]], [[4], [5], [6]]]
In [8]: b = [y for i in aa for x in i for y in x]

In [9]: b
Out[9]: [1, 2, 3, 4, 5, 6]

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信