相关疑难解决方法(0)

如何从列表列表中制作一个平面列表?

我想知道是否有一条快捷方式可以在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 list flatten multidimensional-array

2950
推荐指数
29
解决办法
184万
查看次数

如何通过给定的分隔符拆分列表中的字符串并展平子字符串列表

我有一个包含此列表的 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)

如何修改脚本以允许我在列表中拆分字符串,然后将新的子字符串插入原始字符串的位置,而不会覆盖列表中的其他元素?

python string list flatten

1
推荐指数
2
解决办法
744
查看次数

标签 统计

flatten ×2

list ×2

python ×2

multidimensional-array ×1

string ×1