2014-05-25 54 views
0

爲什麼我得到「int類型的參數不能迭代錯誤」?這是我的簡單代碼。Python:獲取int類型的參數不可迭代錯誤

def remove_duplicates(x): 
    out = x[0] 
    for i in range(1,len(x)): 
     if x[i] in out: 
      print "duplicate " + str(x[i]) 
     else: 
      out.append(x[i])  
    return out 

remove_duplicates([4,5,5,4]) 

得到以下輸出。

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "<stdin>", line 4, in remove_duplicates 
TypeError: argument of type 'int' is not iterable 

回答

1

當分配:

out = x[0] 

out現在是一個int,你不能做的事如x[i] in outout.append(x[i]),因爲out是一個整數。

你想:

out = [x[0]] 

,如果你想out成爲一個列表。

+1

hah..stupid錯誤。感謝您指出。 – jpr

1

out = x[0]應該是out = [x[0]]

您收到的錯誤指示檢查x[i] in out是企圖內out尋找什麼,因爲out是一個int,這個失敗的,因爲你不能有一個int裏面的東西。相反,您應該首先製作out a 列表僅包含x[0]

1

if x[i] in out:要求out是一個迭代即列表,字典,組,等等。然而,已初始化out爲單個元件(x[0]),而不是一個集合。
如果您打算out是與x第一個元素初始化列表,而是執行此操作:

out = [x[0]] 
相關問題