如何从列表中删除元组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从列表中删除元组相关的知识,希望对你有一定的参考价值。

这是我的元组列表:

[('Abbott', 'Texas'), ('Abernathy', 'Texas'), ('Abilene', 'Texas'), ('Ace', 'Texas'), ('Ackerly', 'Texas'), ('Alba', 'Texas'),('Addison', 'Texas'), ('Adkins', 'Texas'), ('Adrian', 'Texas'), ('Afton', 'Texas'), ('Agua Dulce', 'Texas'), ('Aiken', 'Texas'), ('Alamo', 'Texas'), ('Alanreed', 'Texas'), ('Albany', 'Texas')]

从上面的元组列表中我想删除('Alba','Texas')

我尝试了很多方法,但它没有给我预期的结果。

我试过了

[x for x in listobj if any(y is not Alba for y in x)] 
答案
list_of_tuples.remove(('Alba', 'Texas'))

要么

list_of_tuples.pop(list_of_tuples.index(('Alba', 'Texas')))
另一答案

您可以按值删除它:

your_list.remove(('Alba', 'Texas'))

但请记住,它不会删除所有元素。如果要删除所有出现的内容:

your_list = [x for x in your_list if x != 2] 

无论如何,这个问题已经回答了很多次,并且很容易找到 - remove list element by value in Python

另一答案

使用Python的列表理解应该很适合你。

foo = [('Abbott', 'Texas'), ('Abernathy', 'Texas'), ('Abilene', 'Texas'), ('Ace', 'Texas'), ('Ackerly', 'Texas'), ('Alba', 'Texas'),('Addison', 'Texas'), ('Adkins', 'Texas'), ('Adrian', 'Texas'), ('Afton', 'Texas'), ('Agua Dulce', 'Texas'), ('Aiken', 'Texas'), ('Alamo', 'Texas'), ('Alanreed', 'Texas'), ('Albany', 'Texas')]
foo = [x for x in foo if x!= ("Alba", "Texas")]

以上是关于如何从列表中删除元组的主要内容,如果未能解决你的问题,请参考以下文章

如何根据元组的索引值从列表中删除重复的元组,同时保持元组的顺序? [复制]

从列表视图中删除一行后刷新片段

从列表中的元组中删除空字符串

从列表中删除重复的无序元组

从列表中删除元组删除了一些但不是全部

坚持不懈续集 初学者挑战学习Python编程30天