删除词典中的一些列表项
您好, 我有一本字典:
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。我怎么能这样做?
答案 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}