2014-08-29 117 views
0

我試圖遍歷python中的嵌套列表時出現問題,並將列表中的值複製到另一個嵌套列表中,並隨着每個值添加一個值。遍歷嵌套列表並使用列表解析複製值

說我有一個列表

input = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

我試圖創建第二個表(稱之爲output),爲:

output = [[x + 1 for int(x)in y] for y in input] 

這給我的錯誤

SyntaxError: can't assign to function call 

編輯:

感謝答案,這個問題試圖調用int(x) - 這完全沒有必要。此外,它似乎沒有任何問題,我調用列表input

+0

我認爲你是後:'[[X + 1對Y X]在輸入Y]' - 不知道你想做什麼你的'int'調用 - 它們已經是'int'了...... – 2014-08-29 11:14:28

+0

包含完整的錯誤追溯通常是有幫助的,而不是*「完全不工作」*。 – jonrsharpe 2014-08-29 11:16:40

回答

5

你有幾個問題:

  1. inputbuilt-in function,所以你不應該把它用作變量名;
  2. in之前在你的內部列表理解中缺少空格;和
  3. 您正在嘗試將y中的每個值依次指定爲int(x),因此錯誤消息爲can't assign to function call

無論如何調用int是不必要的,因爲您的值已經是整數。

相反,嘗試:

input_ = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
output = [[x + 1 for x in y] for y in input_] 
1

移動int(x)左側

output = [[int(x) + 1 for x in y] for y in input] 

實際上,由於y已經int類型,你不必再打電話int(x)[x + 1 for x in y]將做工精細

+2

也不要將輸入用作變量名稱 – 2014-08-29 11:17:04