如何删除行的第一个元素,以便从列表中删除整行?

时间:2016-06-22 12:54:39

标签: python-2.7

我的列表如下:

items = []

a = "apple", 1.23

items.append(a)

b = "google", 2.33

items.append(b)

c = "ibm", 4.35

items.append(c)

现在我将删除" apple"只需输入" apple"。

的名称

怎么办?

4 个答案:

答案 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)]