我在 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']
另请注意,此处的正确术语是列表的列表,而不是数组。
