我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.
我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.
码
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud) 我有一个包含此列表的 python 脚本:
blocks = [
"item-1",
"item-2",
"item-3.0;item-3.1;item-3.2"
]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
for (i, block) in enumerate(blocks):
if ";" in block:
[blocks.insert(i, c) for c in block.split(";")]
else:
blocks.insert(i, block)
Run Code Online (Sandbox Code Playgroud)
要得到这个:
blocks = [
"item-1",
"item-2",
"item-3.0",
"item-3.1",
"item-3.2"
]
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的代码不断覆盖列表中的元素,我只剩下这个:
blocks = [
"item-1",
"item-2",
"item-3.2"
]
Run Code Online (Sandbox Code Playgroud)
如何修改脚本以允许我在列表中拆分字符串,然后将新的子字符串插入原始字符串的位置,而不会覆盖列表中的其他元素?