【问题标题】:Python nested list conditional deletePython嵌套列表条件删除
【发布时间】:2022-12-12 09:54:31
【问题描述】:

我有一个列表列表,其中一些列表不完整。 IE。:

data = [
['id1',1],
['id2'],
['id3'],
['id4'],
['id5',1]
]

我想创建一个仅包含“完整”列表的新列表。

期望的输出:

[
['id1',1],
['id5',1]
]

我努力了:

new_data = [i for i in data if i[1]]

然而,这返回:

列表索引错误:索引超出范围

我觉得很奇怪,因为 if[1] 就在那里。

问题

是否有针对单行方法的简单修复,或者我们必须使用 for 循环?

【问题讨论】:

    标签: python-3.x list


    【解决方案1】:

    不要尝试访问值,而是检查长度:

    new_data = [i for i in data if len(i) == 2]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2022-07-07
      相关资源
      最近更新 更多