删除一些列表项中词典

问题描述:

删除字典里面的几个列表项删除一些列表项中词典

嗨, 我有一本字典:

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

让我们说,我想删除从12和5从“手机”字典。 有没有办法做到这一点使用“del”功能?

我知道如何做到这一点,使用一个.remove()

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

但我想知道是否有可能用做德尔()? 谢谢。

编辑:对于所有的这些答复集中在“德尔使用索引,取出使用的精确值”,我重新定义了我的问题:

我想删除列表中的代表第三个关键指标1和2 “手机”字典中的值项目。我怎样才能做到这一点?

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

>>> 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

我根据您的修改更新了此答案。 – 2013-05-04 16:43:41

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} 
+0

好吧,让我们重新制定我的问题: 我想删除列表中的代表“手机”字典中的第三键值项指标1和2。 我该怎么做? – stgeorge 2013-05-04 16:35:31

+0

@stgeorge我补充说,我的回答 – marcadian 2013-05-04 16:44:17

手机词典的存储数据,删除列表中的项目。

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

+0

阿米拉你好,是你告诉我: editedList =电话[ “第三”] 德尔editedList [1:3] 电话【 “第三”] = editedList – stgeorge 2013-05-04 16:39:52

您可以将phone [“third”]作为列表对待,因为这是它的评估对象。举例来说,如果你知道你要删除的项目的索引,你可以这样做:

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

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

这正是我所寻找的。谢谢丹萨尔莫。 顺便说一句,“del”周围的“()”是Python 3的一个特性吗? – stgeorge 2013-05-04 16:44:39

+0

我有Python 2.7,它为我工作。你能接受答案吗? – dansalmo 2013-05-04 19:11:12

+0

是的,我可以。从我目前学习python的书(我没有编程背景)开始,“del”函数在没有括号的情况下使用。并与空白:del b [电话] [1:3] 但我现在看到使用oarentheses时效果是相同的。 – stgeorge 2013-05-04 23:08:33

可以使用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}