2017-03-10 64 views
0
dist=[a,b,c,d,e] 
spset=[1,3] 
k=[] 
for m in range(1,self.n+1): 
    if m not in spset: 
     k+=dist[m] 

我想做一個列表k,其中包含dist的所有元素,但索引在spset[]中的元素除外。我究竟做錯了什麼?錯誤是:爲什麼我在這個python代碼片段中不能迭代float?

k+=dist[m] 
TypeError: 'int' object is not iterable 
+0

簡而言之:'a_list = [1,2]; a_list + = [3]'導致'a_list'爲'[1,2,3]'。如果你有'3'而不是'[3]',你應該使用'a_list.append(3)'。 – TigerhawkT3

回答

1

該問題可能是由@SuperSaiyan所述的問題。此外,在這裏您還有另一種可能的解決方案更加緊湊和簡單:

[x for i,x in enumerate(dist) if i not in spset] 
0

因爲dist[m]可能是一個int。您正嘗試通過+=操作「擴展」列表。你可能想要k.append(dist[m])

相關問題