第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

類型錯誤:不可散列的類型:字典中的“列表”

類型錯誤:不可散列的類型:字典中的“列表”

繁花不似錦 2023-12-08 17:14:45
實(shí)現(xiàn)函數(shù) consolidate,它在星形參數(shù)中接受零個或多個序列seqs,并返回一個字典,其鍵由這些序列中找到的值組成,這些值又映射到數(shù)字,指示每個值在所有序列中出現(xiàn)的次數(shù)。例如consolidate([1,2,3], [1,1,1], [2,4], [1])應(yīng)該返回字典{1: 5, 2: 2, 3: 1, 4: 1}。我的代碼:def consolidate(*seqs):    d={}    for i in seqs:                      for number in seqs:               d[number]=d.get(number,0)+1       return dprint(consolidate([1,2,3], [1,1,1], [2,4], [1]))錯誤:TypeError: unhashable type我怎樣才能解決這個問題?
查看完整描述

3 回答

?
德瑪西亞99

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。


查看完整回答
反對 回復(fù) 2023-12-08
?
慕姐8265434

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é)果。這對于追蹤問題非常有用。


查看完整回答
反對 回復(fù) 2023-12-08
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個贊

您可以考慮使用 的子類dictCounter它是為用例而設(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}


查看完整回答
反對 回復(fù) 2023-12-08
  • 3 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號