如何从列表

时间:2017-09-11 09:46:14

标签: python list tuples

这是我的元组列表:

[('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)] 

4 个答案:

答案 0 :(得分:1)

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

list_of_tuples.pop(list_of_tuples.index(('Alba', 'Texas')))

答案 1 :(得分:1)

您可以按值删除它:

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

但请记住,它不会删除所有元素。 如果要删除所有匹配项:

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

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

答案 2 :(得分:0)

使用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")]

答案 3 :(得分:0)

如果要通过其第一个元素删除元组:

tup = [('hi', 'bye'), ('one', 'two')]
tup_dict = dict(tup) # {'hi': 'bye', 'one': 'two'}
tup_dict.pop('hi')
tup = tuple(tup_dict.items()) # (('one', 'two'),)