2013-05-04 148 views
0

刪除字典裏面的幾個列表項刪除一些列表項中詞典

嗨, 我有一本字典:

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 「手機」字典中的值項目。我怎樣才能做到這一點?

回答

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

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

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

好吧,讓我們重新制定我的問題: 我想刪除列表中的代表「手機」字典中的第三鍵值項指標1和2。 我該怎麼做? – stgeorge 2013-05-04 16:35:31

+0

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

0

手機詞典的存儲數據,刪除列表中的項目。

其他答案 - 嘗試獲取包含要更改的數據的項目(鍵值)。從字典中刪除它。修改這個項目的值(列表)。然後將它添加到字典

+0

阿米拉你好,是你告訴我: editedList =電話[ 「第三」] 德爾editedList [1:3] 電話【 「第三」] = editedList – stgeorge 2013-05-04 16:39:52

0

您可以將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

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}