我在尝试迭代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 :(得分:5)
你有几个问题:
input
是built-in function,因此您不应将其用作变量名称; in
之前缺少一个空格;和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 :(得分: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]
可以正常使用