如何在python中中断子列表,使子列表中的每个元素成为列表中的普通元素

2024-04-24 16:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

例如我有

[[1,2,3],[1,2,3],3,5,6]

我想把它变成

[1,2,3,1,2,3,3,5,6]

python3中的代码是什么样的


Tags: 代码python3
1条回答
网友
1楼 · 发布于 2024-04-24 16:43:04

迭代a项,如果项是list,则迭代子项;其他仅附加到新列表:

a = [[1,2,3],[1,2,3],3,5,6]
b = []
for x in a:
    if isinstance(x, list):
        b.extend(x)
    else:
        b.append(x)
# b == [1,2,3,1,2,3,3,5,6]

使用list comprehension(嵌套的for)和conditional expression的另一种方法:

>>> a = [[1,2,3],[1,2,3],3,5,6]
>>> [y for x in a for y in (x if isinstance(x, list) else [x])]
[1, 2, 3, 1, 2, 3, 3, 5, 6]

相关问题 更多 >