Python:将列表列表与布尔项合并?

2024-04-20 06:43:07 发布

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

这里我需要将列表列表与布尔项合并。你知道吗

Input like this

list = [[[3, [1, 2]]], [[1, [2, 3]]], False, [[4, [4, 5]]]]

And excepted result is

[[3, [1, 2]], [1, [2, 3]], False, [4, [4, 5]]]

I tried this

res = []
for x in list:
   res.append(x)
print res

提前谢谢。。。你知道吗


Tags: andinfalse列表forinputisres
1条回答
网友
1楼 · 发布于 2024-04-20 06:43:07

如果子列表有效(if sub),可以使用列表理解来保留子列表的第一个元素,否则子列表本身:

>>> lst = [[[3, [1, 2]]], [[1, [2, 3]]], False, [[4, [4, 5]]]]
>>> [sub[0] if sub else sub for sub in lst]
[[3, [1, 2]], [1, [2, 3]], False, [4, [4, 5]]]

注意:不要使用python关键字和内置类型的名称作为变量和对象名称。你知道吗

正如@Padraic Cunningham所建议的,为了更精确地使用isinstance()

>>> [sub[0] if isinstance(sub, list) else sub for sub in lst]
[[3, [1, 2]], [1, [2, 3]], False, [4, [4, 5]]]

相关问题 更多 >