这里我需要将列表列表与布尔项合并。
像这样输入
list = [[[3, [1, 2]]], [[1, [2, 3]]], False, [[4, [4, 5]]]]
除了结果
[[3, [1, 2]], [1, [2, 3]], False, [4, [4, 5]]]
我试过这个
res = []
for x in list:
res.append(x)
print res
提前致谢...
答案 0 :(得分:3)
如果子列表有效(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]]]