Skip to main content
 首页 » 编程设计

python之根据条件从二维列表创建列表

2025年05月04日16qlqwjy

我在 Python 中有一个二维数组,设置如下

MY_ARRAY = [ 
    ['URL1', "ABC"], 
    ['URL2'], 
    ['URL3'], 
    ['URL4', "ABC"] 
] 

只有当第二个参数是“ABC”时,我才想为每个数组的第一个元素创建一个数组。所以上面示例的结果将是 ['URL1', 'URL4']

我尝试执行 [x[0] for x in MY_ARRAY if x[1] == 'ABC'] 但这会返回 IndexError: list index out of range。我认为这是因为有时 x[1] 不存在。

我希望这是一个简单的单行代码。

请您参考如下方法:

您可以先简单地在过滤条件中添加长度检查。这是有效的,因为 Python 短路了 bool 表达式。

[ele[0] for ele in MY_ARRAY if len(ele) > 1 and ele[1] == 'ABC'] 

另请注意,此处的正确术语是列表的列表,而不是数组。