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

>>> 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]
  1. 如何解释上面代码的运行结果?
    一般的得到的结果是[4, 4, 5, 5, 6, 6],但是偶然会得到[1, 1, 2, 2, 3, 3],这是为什么呢?

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

慕侠2389804
浏览 630回答 3
3回答

慕标5832272

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] flatten 在stack overflow 上有详细的讨论, 上面的方法被发现是最快的,

凤凰求蛊

a = [[1, 2, 3], [4, 5, 6]] all = [] for i in a: all += i 没想到更简洁的方法。

侃侃无极

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]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python