列表项为列表时如何从列表中删除

2024-06-28 19:13:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表:

[['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]

如果我想删除包含“Ari”的列表项,那么如何删除整个列表项,以便只剩下:

[['Fran', 'female', 'skilled']]

目前我正在尝试:

for item in list:
    if 'Ari' in item:
        # Delete item...

Tags: in列表forifitemdeletemalefemale
2条回答

如果要修改原始列表,则可以使用列表理解创建新列表,删除所需的项,然后重新绑定到列表变量:

>>> original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
>>> original = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]

这将创建一个新的列表,然后将新列表绑定到变量original。如果原始列表很大,则可以避免创建副本并就地更新:

original = [['Ari', 'male', 'learning'],['Fran', 'female', 'skilled']]
original[:] = [item for item in original if 'Ari' not in item]
>>> original
[['Fran', 'female', 'skilled']]

注意使用切片表示法([:])来更新原始列表

使用列表理解并检查'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,因为那样会覆盖实际的关键字

相关问题 更多 >