当列表项是列表时如何从列表中删除项目
How to delete item from list when list items are lists
我有一个列表列表:
[['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
如果我想删除其中包含 'Ari' 的列表项,如何删除整个项目以便我只剩下:
[['Fran', 'female', 'skilled']]
目前我正在尝试这个:
for item in list:
if 'Ari' in item:
# Delete item...
使用列表理解并检查 'Ari'
:
print([i for i in list if not 'Ari' in i])
或关键字顺序稍有不同:
print([i for i in list if 'Ari' not in i])
输出:
[['Fran', 'female', 'skilled']]
而且,不要命名列表 list
,因为那样会覆盖实际关键字。
如果你想修改原始列表,那么你可以使用列表理解来创建一个新列表,删除所需的项目,然后重新绑定到列表变量:
>>> original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
>>> original = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]
这将创建一个 new 列表,然后将新列表绑定到变量 original
。如果原始列表很大,您可以避免创建副本并就地更新:
original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
original[:] = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]
注意使用切片表示法 ([:]
) 更新原始列表。
我有一个列表列表:
[['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
如果我想删除其中包含 'Ari' 的列表项,如何删除整个项目以便我只剩下:
[['Fran', 'female', 'skilled']]
目前我正在尝试这个:
for item in list:
if 'Ari' in item:
# Delete item...
使用列表理解并检查 'Ari'
:
print([i for i in list if not 'Ari' in i])
或关键字顺序稍有不同:
print([i for i in list if 'Ari' not in i])
输出:
[['Fran', 'female', 'skilled']]
而且,不要命名列表 list
,因为那样会覆盖实际关键字。
如果你想修改原始列表,那么你可以使用列表理解来创建一个新列表,删除所需的项目,然后重新绑定到列表变量:
>>> original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
>>> original = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]
这将创建一个 new 列表,然后将新列表绑定到变量 original
。如果原始列表很大,您可以避免创建副本并就地更新:
original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
original[:] = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]
注意使用切片表示法 ([:]
) 更新原始列表。