Traceback (most recent call last):
File "<pyshell#80>", line 1, in <module>
do_work()
File "C:\pythonwork\readthefile080410.py", line 14, in do_work
populate_frequency5(e,data)
File "C:\pythonwork\readthefile080410.py", line 157, in populate_frequency5
data=medications_minimum3(data,[drug.upper()],1)
File "C:\pythonwork\readthefile080410.py", line 120, in medications_minimum3
counter[row[11]]+=1
TypeError: unhashable type: 'list'
我收到這條線上面的錯誤:蟒蛇:unhashable類型的錯誤
data=medications_minimum3(data,[drug.upper()],1)
(我自己也嘗試drug.upper()不帶括號)
這裏是一個預覽此功能:
def medications_minimum3(c,drug_input,sample_cutoff): #return sample cut off for # medications/physician
d=[]
counter=collections.defaultdict(int)
for row in c:
counter[row[11]]+=1
for row in c:
if counter[row[11]]>=sample_cutoff:
d.append(row)
write_file(d,'/pythonwork/medications_minimum3.csv')
return d
有沒有人知道我在做什麼錯在這裏?
我知道什麼是必須是錯的是我調用這個函數的方式,因爲我把從不同的位置,這個功能並能正常工作:
d=medications_minimum3(c,drug_input,50)
非常感謝您的幫助!
爲什麼在失敗的調用中''drug.upper()]'方括號? – 2010-08-04 22:10:13
而且它也沒有在功能上使用,沒有提及drug_input – jcubic 2010-08-04 22:18:18
@jcubic:很好。這可能意味着代碼已經被過多地編輯以便在這裏發佈以至於毫無價值。 – 2010-08-04 22:25:05