2014-08-29 92 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