Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 展平嵌套列表中的内部列表_Python_List - Fatal编程技术网

Python 展平嵌套列表中的内部列表

Python 展平嵌套列表中的内部列表,python,list,Python,List,我有每个子列表包含内部嵌套列表的子列表,我只想展平内部嵌套列表,所以它只是子列表的一部分 名单是这样的 A=[[[[a ,b], [e ,f]], [e, g]], [[[d, r], [d, g]], [l, m]], [[[g, d], [e, r]], [g, t]]] 我想展平显示在中每个子列表第一个位置的嵌套列表,以便输出如下所示 A= [[[a ,b], [e ,f], [e, g]], [[d, r], [d, g], [l, m]], [[g, d]

我有每个子列表包含内部嵌套列表的子列表,我只想展平内部嵌套列表,所以它只是子列表的一部分

名单是这样的

A=[[[[a ,b], [e ,f]], [e, g]],
   [[[d, r], [d, g]], [l, m]],
   [[[g, d], [e, r]], [g, t]]]
我想展平显示在中每个子列表第一个位置的嵌套列表,以便输出如下所示

A= [[[a ,b], [e ,f], [e, g]],
    [[d, r], [d, g], [l, m]],
    [[g, d], [e, r], [g, t]]]

我不确定使用什么代码来完成此操作,因此非常感谢您的帮助。

您可以使用列表理解来展平第一个内部列表:

A[:] = [[*i, j] for i,j in A]
对于3.0以上的Python:

[i+[j] for i,j in A]


您可以使用列表理解来展平第一个内部列表:

A[:] = [[*i, j] for i,j in A]
对于3.0以上的Python:

[i+[j] for i,j in A]

试试这个:

B = [[*el[0], el[1]] for el in A]
print(B)
输出:

[[['a', 'b'], ['e', 'f'], ['e', 'g']],
 [['d', 'r'], ['d', 'g'], ['l', 'm']],
 [['g', 'd'], ['e', 'r'], ['g', 't']]]
或者,对于Python 2(星形
*
操作符在这里的行为方式不同):

您可以尝试以下方法:

B = [[*el[0], el[1]] for el in A]
print(B)
输出:

[[['a', 'b'], ['e', 'f'], ['e', 'g']],
 [['d', 'r'], ['d', 'g'], ['l', 'm']],
 [['g', 'd'], ['e', 'r'], ['g', 't']]]
或者,对于Python 2(星形
*
操作符在这里的行为方式不同):


你可以

我认为这很简单:

[*map(lambda x: x[0] + [x[1]], A)]

我认为这很简单:

[*map(lambda x: x[0] + [x[1]], A)]

有点罗嗦,但有效:

import itertools

container = [list(itertools.chain(i[0] + [i[1]])) for i in A]

print(container)
结果:

[[['a', 'b'], ['e', 'f'], ['e', 'g']], 
 [['d', 'r'], ['d', 'g'], ['l', 'm']], 
 [['g', 'd'], ['e', 'r'], ['g', 't']]]

有点罗嗦,但有效:

import itertools

container = [list(itertools.chain(i[0] + [i[1]])) for i in A]

print(container)
结果:

[[['a', 'b'], ['e', 'f'], ['e', 'g']], 
 [['d', 'r'], ['d', 'g'], ['l', 'm']], 
 [['g', 'd'], ['e', 'r'], ['g', 't']]]

这回答了你的问题吗?我真的很喜欢你最近提出的问题,但是否可以将你的列表格式化为字符串?因为我们都必须手动完成。是的,很抱歉,下次我会记住的!这回答了你的问题吗?我真的很喜欢你最近提出的问题,但是否可以将你的列表格式化为字符串?因为我们都必须手动完成。是的,很抱歉,下次我会记住的!嘿,由于某种原因,我得到了一个无效的语法错误。我在Python2中工作也许这就是原因?更新了@asiv-是的,这就是原因嘿,所以出于某种原因,我得到了一个无效的语法错误。我在python 2中工作也许这就是原因?更新了@asiv-是的,这就是原因