【问题标题】:Nested list traversing in Python [duplicate]Python中的嵌套列表遍历[重复]
【发布时间】:2022-01-07 09:14:56
【问题描述】:

您好,我正在寻找此解决方案,但找不到任何解决方案

我想转换下面的列表

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

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

你用这个代码搞定了

list1=[1,2,3,[4],5,[2,4]]
list2=[]

for i in range(len(list1)):
    if type(list1[i])!=int:
        for j in range(len(list1[i])):
            list2.append(list1[i][j])
    else:
        list2.append(list1[i])
print(list2)

任何人都可以在没有 for 循环和所有的情况下告诉任何其他方式

【问题讨论】:

  • 您可以查看here 讨论过类似主题的地方

标签: python python-3.x list nested-lists


【解决方案1】:

这可能是一个解决方案。不是最好的,而是一个解决方案:

list1 = [1, 2, 3, [4], 5, [2, 4]]
l = []
for i in list1:
    if type(i) is int:
        l.append(i)
    elif type(i) is list:
        for a in i:
            l.append(a)

更好:

list1 = [1, 2, 3, [4], 5, [2, 4]]
l = []
for i in list1:
    if type(i) is int:
        l.append(i)
    elif type(i) is list:
        l.extend(i)

【讨论】:

  • 这仅在嵌套级别受限时才有效。如果list1 = [1, [[[[2]]]]]怎么办?
  • 我不知道为什么但不是在 jupyter notebook 中工作
  • 我必须使用 list1 = [1, 2, 3, [4], 5, [2, 4]] l = [] for i in list1: if type(i) is int: l.append(i) elif type(i) is not int: l.extend(i) print(l)
  • 不是 int ,如果我使用的是列表,它不会检查列表数据类型
猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
  • 2015-05-16
相关资源
最近更新 更多