比我想寫達到這個目的,如果給一個函數的嵌套列表:做總和在給定的列表
t = [1,2,[2,2],[3,3]]
我想要的功能,使T爲 [1,2,4,6]
。這裏,是我的代碼在Python:
t=[1,2,[2,2],[3,3]]
def nested_sum(t):
for x in t:
if type(t[x])=='int':
t[x]=t[x]
else:
t[x]=['sum(t[x])']
return t
nested_sum(t)
我得到了
Traceback (most recent call last):
File "nested_sum.py", line 11, in <module>
nested_sum(t)
File "nested_sum.py", line 5, in nested_sum
if type(t[x])=='int':
TypeError: list indices must be integers, not list
我不太肯定我所犯的錯誤(或多個)錯誤信息。因爲我的邏輯是:
type(t[0])=1
這是「Int」類型和type(t[2])=[2,2]
這是「List」類型,我認爲這些符合「if ... else ...」語句。
任何幫助將不勝感激指出我的錯誤。提前謝謝你。
'for x in t'將'x'綁定到列表中的每個* item *,而不是每個* index *。 – jonrsharpe
謝謝jonrsharpe,我現在發現我的錯誤。 – nam