[英]How do I filter this python defaultdict on a value within a dict?
[英]How do I print the lists of all the indices within defaultdict in Python 3?
我定義了一個defaultdict,如下所示:
results=defaultdict(list)
在讀取字典文件中每一行的for循環中,我生成一個tempWordObject,其中包含原始單詞(originalWord),其字母版本(azWord)和單詞的長度(wLength)。 然后,我根據對象的長度將其附加到列表中:
results[tempWordObject.wLength].append(tempWordObject)
因此,我最后要提到的是一個默認結果,稱為result,其中包含基於單詞長度的單詞列表。 因此,例如,結果[4]應在列表中包含所有4個字母詞。 如果我誤會發生的情況,請糾正我。
我試圖做的事情(出於測試目的並在以后生成結果)是在閱讀完文件后打印出defaultdict中所有的列表。 因此,它將在第一行中打印單詞對象defaultdict [1]的列表,在第二行中打印defaultdict [2]的單詞對象的列表,等等。我還希望在以下情況下僅打印特定參數:我做這個
如果有幫助,循環完成后,我將擁有最長字的長度(maxL)。
我認為我無法正常工作的部分原因是由於我誤解了defaultdict中的存儲方式和/或存儲方式。 一個解釋將不勝感激。
只需按排序順序遍歷鍵即可:
for length in sorted(results):
print length, [t.originalWord for t in results[length]]
defaultdict
仍然是字典; sorted(results)
返回該字典中所有已排序鍵的列表。 然后,可以使用每個鍵再次使用results[length]
訪問存儲的特殊對象列表。 列表理解只是從那些對象中拉出每個originalWord
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.