[英]Grouping values by length in a dictionary python
我在做運動。 這個想法是你有一個插入隨機單詞的列表。 例如: list=["abc","doc","string"]
。 我需要做的是按字典中的單詞長度按相對於鍵的升序對單詞進行分組,因此它看起來像這樣: {3: ['abc','doc], 6: ['doc']}
.
這是我到目前為止所做的代碼。 代碼的問題在於,如果有兩個值具有相同的鍵,它會完全刪除其中之一,鍵和值。 所以這將打印: {3:['abc'], 6:['doc']}
。
input = ['abc','doc','string']
length=[]
for a in input:
x=len(a)
length.append(x)
input_dict=dict(zip(length,input))
d = defaultdict(list)
for key, value in sorted(input_dict.items()):
d[value].append(key)
print(input_dict)
您將按如下方式更新您的defaultdict
from collections import defaultdict
words = ['abc','doc','string']
a = defaultdict(list)
for word in words:
a[len(word)].append(word)
結果
>>> a
defaultdict(<class 'list'>, {3: ['abc', 'doc'], 6: ['string']})
from collections import defaultdict
input_list = ['abc','doc','string']
d = defaultdict(list)
for word in sorted(input_list, key=len):
d[len(word)].append(word)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.