删除字典中的一些列表项

时间:2013-05-04 16:28:27

标签: python list dictionary del

删除词典中的一些列表项

您好, 我有一本字典:

phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}

让我们说我想从“电话”词典中删除12和5。 有没有办法使用“del”函数?

我知道怎么做,使用.remove()

phone["third"].remove(12)
phone["third"].remove(5)

但我想知道是否可以使用del()来做到这一点? 谢谢。

编辑:对于所有那些专注于“del使用索引,删除使用确切值”的回复,我正在重新定义我的问题:

我想删除代表“phone”字典中第三个键值项的列表中的索引1和2。我怎么能这样做?

5 个答案:

答案 0 :(得分:3)

你必须通过索引而不是值来做到这一点:

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> del(phone["third"][1:3])
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 38], 'first': 100}

这将删除列表中位置1和2的元素。

答案 1 :(得分:1)

您可以使用del(),也可以通过过滤来重新创建列表:

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> phone['third'] = [x for x in phone['third'] if x not in (12,5)]
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 38], 'first': 100}

答案 2 :(得分:0)

访问电话词典的值,删除列表中的项目。

其他答案 - 尝试获取包含您要更改的数据的项目(键,值)。从字典中删除它。修改此项目的值(列表)。然后将其添加到词典

答案 3 :(得分:0)

您可以将电话[“第三”]视为列表,因为它是评估的内容。例如,如果您知道要删除的项目的索引,则可以执行以下操作:

phone["third"][1:3]=[]

del phone["third"][1:3]

答案 4 :(得分:-1)

http://docs.python.org/2/tutorial/datastructures.html#the-del-statement del是一种按索引删除而不是值的方法,但是如果需要,可以先搜索索引。如果要按值删除,最好使用删除。

删除索引1和2处的元素

>>> phone = {"first":100,"second":200,"third":[10,12,5,38],"fourth":400}
>>> del phone["third"][1]
>>> del phone["third"][2]
>>> phone
{'second': 200, 'fourth': 400, 'third': [10, 5], 'first': 100}