【问题标题】:How to get list out of list in python? [duplicate]如何在python中从列表中获取列表? [复制]
【发布时间】:2019-06-18 21:07:32
【问题描述】:

有什么办法可以去掉双重列表?现在我在列表中有一个列表作为输出。

target_rule = [ '2.1.1 Context','2.1.2.4 Helping Us out','We know that']
target=[]
x=[s for s in target_rule if re.findall("\d",s)]

if x:  
    target.append(x)
print(target)

输出是

[['2.1.1 Context', '2.1.2.4 Helping Us out']]

但我希望输出是

['2.1.1 Context', '2.1.2.4 Helping Us out']

【问题讨论】:

  • 你为什么使用target 而不是仅仅使用x?或者说,target = x
  • 删除if条件,只删除print (x)
  • 或者,如果你有理由必须以嵌套方式返回它,你可以通过索引到第一个元素来解除嵌套:target[0]
  • 您可以将target.append(x) 替换为target.extend(x)
  • 简单的解决方案是 print(x) 因为 x 已经是一个列表,因为列表理解表达式 `` x=[s for s in target_rule if re.findall("\d" ,s)] ``` 但是,如果您想连续执行此操作,并且 target 是您希望以这种方式连续添加的数组,那么一种解决方案就是迭代并附加每个元素 ``` if x : for (element in x){ target.append(element) } ``` 或者你可以使用 list append ``` target+=x ```

标签: python list


【解决方案1】:
target_rule = [ '2.1.1 Context','2.1.2.4 Helping Us out','We know that']
x=[s for s in target_rule if re.findall("\d",s)]

print(x)

由于第 3 行的理解,这里的 x 已经是一个列表

在您的代码中,目标是多余的,因为您将列表附加到列表中。如果您想有一个单独的变量来返回/打印,您可以这样做

target = x
return target

【讨论】:

    猜你喜欢
    • 2013-09-15
    • 2021-06-06
    • 2017-09-27
    • 2011-05-09
    • 2011-06-18
    • 2019-12-31
    • 2011-10-19
    • 2020-11-23
    • 2019-05-05
    相关资源
    最近更新 更多