首先第一個值我有一本字典D1看起來像這樣:從字典值列表中刪除的元組,如果在元組= 1
d1 = { 'w' : ['a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c'],
'x' : ['d', 'd', 'd', 'e', 'e'],
'y' : ['f', 'f', 'g'],
'z' : ['h', 'i']
}
然後我遍歷該字典,並作出新的字典,其中每個值一個包含兩個元素的列表:一個整數和一個列表。整數是d1中該值的字符串數。該列表包含元組,(在元組的0位置)包含字符串從d1(在元組的位置1)和的次數該字符串出現在D1的每個元組:
d2 = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [3, [(2, 'f'), (1, 'g')],
'z' : [2, [(1, 'h'), (1, 'i')]
}
我想刪除只所以最後我想出現一次(「G」,「H」,和「我」),任何字符串:
dFinal = { 'w' : [10, [(5, 'a'), (3, 'b'), (2, 'c')],
'x' : [5, [(3, 'd'), (2, 'e')],
'y' : [2, [(2, 'f')]
}
我讀的是什麼,我相信一個例子是字典解析去除整部字典如果值列表的長度小於2:
d = {k:v for k,v in d.items() if len(v) > 1}
我試圖掌握列表/字典解析,並希望使用這樣的事情來實現我所描述的內容,並沿途學習。
起初我試圖編寫一個函數,它將d2作爲參數,但我不知道如何引用每個元組的位置0。
然後認爲使用沒有元組的d1來製作dFinal可能會容易得多,而不是試圖改變d2。
如果你能描述一個乾淨的方式從D1 和/或 D2使dFinal,並解釋的思維過程,我真的很感激它。兩者都能真正幫助我理解如何用理解精確地操作字典列表。
謝謝!
非常感謝。然而,這不會在每個值的開始處調整「總和整數」。 10,5和3需要變成10,5和2. – ddrsee
@ddrsee錯過了那個。輕鬆修復。 –
非常感謝。我會閱讀有關計數器,並試圖找出這裏發生了什麼... – ddrsee