迭代嵌套列表并使用列表推导复制值

时间:2014-08-29 11:11:15

标签: python list nested list-comprehension

我在尝试迭代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

2 个答案:

答案 0 :(得分:5)

你有几个问题:

  1. inputbuilt-in function,因此您不应将其用作变量名称;
  2. 在你的内部列表理解中in之前缺少一个空格;和
  3. 您正尝试将y中的每个值依次分配给int(x),因此错误消息为can't assign to function call
  4. 无论如何,int调用是不必要的,因为您的值已经是整数。

    相反,请尝试:

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

答案 1 :(得分: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]可以正常使用