将列表中的单个列表元素转换为包含列表中的多个元素(就地)

用户名

这不是将2d列表转换为1d列表。这会将一个列表元素(恰好是一个列表)转换为包含列表中的多个元素。输入的不是列表列表。

我有一个如下列表:

x = [1, [2,3,4], 5,....]

我想将其转换为:

x = [1, 2, 3, 4, 5] 

我知道以下内容会起作用:

y = []
for _ in x:
  if isinstance(_, list):
   for i in _:
     y.append(i)
  else:
    y.append(_)

但是希望有更多类似以下内容的pythonic方式(显然行不通):

x = [2, _ for _ in [2,3,4], 5]
贾维斯

您可以这样进行(使列表均匀,然后组合元素):

>>> x = [1, [2, 3, 4], 5]
>>> sum([[i] if not isinstance(i, list) else i for i in x], [])
[1, 2, 3, 4, 5]

另一个解决方案functool.reduce

>>> from functools import reduce
>>> a = [1, [2, 3, 4], 5]
>>> reduce(lambda x, y: [x] + y if not isinstance(x, list) else (x + [y] if not isinstance(y, list) else x + y), a)
[1, 2, 3, 4, 5]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将多个元素列表转换为数组

列表中的单个元素

如何将列表中的一个元素转换为多个元素?

在python中迭代单个列表的多个元素

将单个元素的列表或numpy数组转换为浮在python中

在列表向量中的单个/多个列表中添加元素

将包含不等长元素的列表转换为 R 中的两列数据框(首选 dplyr)

将XML转换为Scala中的元素列表

将列表中的元素转换为字符串

将列表中的元素转换为二进制

将嵌套列表中的所有元素转换为整数

将平面列表元素转换为Java中的嵌套集合

将列表中的每个元素转换为键值对

将嵌套列表中的元素转换为数据框

将“大列表”的每个元素转换为R中的矩阵

在python中将多个列表元素连接到单个列表中

Terraform:将对象列表转换为对象中单个元素的列表

提取列表中多个子列表的元素并转换为多个数据框

如何将列表的元素转换为单个数字

如何将列表中字符串中的每个单词转换为列表中的元素

Java8-将Integer数组转换为单个元素的多个列表

Java - 用列表中的多个元素替换单个元素

用单个元素替换列表中的多个元素

将具有单个元素和列表的列表转换为平面列表

将列表项转换为单个列表中的多个字典

将具有多个元素的列表转换为矩阵

包含对的列表中的元素相乘

将列表列表中的特定元素从字符串转换为整数

将列表列表中的元素转换为整数然后是元组