我的列表如下:
items = []
a = "apple", 1.23
items.append(a)
b = "google", 2.33
items.append(b)
c = "ibm", 4.35
items.append(c)
现在我将删除" apple"只需输入" apple"。
的名称怎么办?
答案 0 :(得分:3)
您可以将items
转换为字典,使用键apple
删除该条目并返回字典项:
>>> items
[('apple', 1.23), ('google', 2.33), ('ibm', 4.35)]
>>> d = dict(items)
>>> del d['apple']
>>> items = d.items()
>>> items
[('ibm', 4.35), ('google', 2.33)]
在python 3中,你应该使用d.items
投射list
,因为.items()
会返回一个{em}可迭代的<{1}}对象但标化的:
dict_items
答案 1 :(得分:0)
我建议您使用正确的数据结构。在你的情况下,一个字典可以解决问题。
items = {"apple": 1.23, "google": 2.33, "ibm": 4.35}
要删除,请使用:
items.pop("apple", None)
答案 2 :(得分:0)
因为我只能接受一个答案,并且说我对两者都不是100%满意,所以我没有接受任何答案。希望对大家都好。
我遵循以下两种方式的组合:
d = dict(items)
d.pop("apple", None)
myitem = d.items()
答案 3 :(得分:0)
我认为最好的方法是使用字典,正如@Sricharan Madasi和@Moses Koledoye所建议的那样。但是,如果OP似乎更喜欢将数据排列为元组列表,他可能会发现此函数很有用:
def my_func(lst, key):
return [(name, number) for (name, number) in lst if name != key]
以下交互式会话演示了其用法:
>>> items = [('apple', 1.23), ('google', 2.33), ('ibm', 4.35)]
>>> my_func(items, 'apple')
[('google', 2.33), ('ibm', 4.35)]
>>> my_func(items, 'ibm')
[('apple', 1.23), ('google', 2.33)]
>>> my_func(items, 'foo')
[('apple', 1.23), ('google', 2.33), ('ibm', 4.35)]