3 回答

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個贊
你打錯字了,應(yīng)該for number in i不是for number in seqs。您當(dāng)前正在嘗試使用列表作為字典鍵。
def consolidate(*seqs):
d = {}
for i in seqs:
for number in i:
d[number] = d.get(number,0) + 1
return d
i調(diào)用類似seq=> 之類的東西可能會更好for seq in seqs。

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個贊
def consolidate(*seqs):
d={}
for i in seqs:
for number in i: # here is the problem, should be i not seqs
d[number]=d.get(number,0)+1
return d
print(consolidate([1,2,3], [1,1,1], [2,4], [1]))
PS 調(diào)試時嘗試打印中間結(jié)果。這對于追蹤問題非常有用。

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個贊
您可以考慮使用 的子類dict
,Counter
它是為用例而設(shè)計(jì)的,如下所示:
from collections import Counter
def consolidate(*seq):
? ? return dict(Counter([x for l in seq for x in l]))
print(consolidate([1,2,3], [1,1,1], [2,4], [1]))
輸出:
{1: 5, 2: 2, 3: 1, 4: 1}
添加回答
舉報