解压缩嵌套列表

时间:2012-07-13 06:20:32

标签: python list

我的问题很简单。 有两个列表。 第一个是整数列表:

a = [1, 2, 3]

另一个是列表清单:

b = [['a', 'b'], ['c', 'd'], ['e', 'f']]

我怎样才能得到以下结果:

result = [[1, 'a', 'b'], [2, 'c', 'd'], [3, 'e', 'f']]

感谢。

5 个答案:

答案 0 :(得分:9)

>>> a = [1, 2, 3]
>>> b = [['a', 'b'], ['c', 'd'], ['e', 'f']]
>>> [[aa] + bb for aa, bb in zip(a, b)]
[[1, 'a', 'b'], [2, 'c', 'd'], [3, 'e', 'f']]

答案 1 :(得分:2)

在Python3中

>>> a = [1, 2, 3]
>>> b = [['a', 'b'], ['c', 'd'], ['e', 'f']]
>>> [aa+bb for *aa, bb in zip(a,b)]
[[1, 'a', 'b'], [2, 'c', 'd'], [3, 'e', 'f']]

答案 2 :(得分:0)

以下Python代码将解压缩每个列表并以您指定的形式组装它。

[[a[i]] + b[i]  for i in range(min(len(a),len(b)))]

答案 3 :(得分:0)

另一种方法是:

index = 0
l = b
for i in a:
    l[index].append(i)
    index += 1

答案 4 :(得分:0)

使用Python的enumerate函数,您可以使用索引遍历列表。使用x.extend(y)会将列表x中的值添加到列表y之前。

a = [1, 2, 3]
b = [['a', 'b'], ['c', 'd'], ['e', 'f']]

result = []
for index, value in enumerate(a):
    aa = [value]
    aa.extend(b[index])
    result.append(aa)