是否可以在Python中为同一行分配值并增加指定值?
像这样的东西:
x = 1 a = x b = (x += 1) c = (x += 1) print a print b print c >>> 1 >>> 2 >>> 3
编辑: 我需要在我创建Excel工作表的上下文中:
col = row = 1 ws.cell(row=row, column=col).value = "A cell value" ws.cell(row=row, column=(col += 1)).value = "Another cell value" ws.cell(row=row, column=(col += 1)).value = "Another cell value"
编辑2:解决方案: 这是不可能的,但我创建了一个简单的修复:
col = row = 1 def increment_one(): global col col += 1 return col ws.cell(row=row, column=col).value = "A cell value" ws.cell(row=row, column=increment_one()).value = "Another cell value" ws.cell(row=row, column=increment_one()).value = "Another cell value"
poke.. 7
不,这在Python中是不可能的.
作业(或增强作业)是声明,因此可能不会出现在另一作业的右侧.您只能将表达式分配给变量.
其原因很可能是避免因支持这种情况的其他语言容易引起的副作用造成的混淆.
但是,正常分配确实支持多个目标,因此您可以将同一表达式分配给多个变量.这当然仍然只允许你在右侧有一个表达式(仍然没有声明).在你的情况下,既然你想要b
并x
最终得到相同的值,你可以像这样写:
b = x = x + 1 c = x = x + 1
请注意,由于您正在进行操作x = x + 1
,因此不再使用扩充分配,因此对某些类型可能会产生不同的效果(尽管不是整数).
不,这在Python中是不可能的.
作业(或增强作业)是声明,因此可能不会出现在另一作业的右侧.您只能将表达式分配给变量.
其原因很可能是避免因支持这种情况的其他语言容易引起的副作用造成的混淆.
但是,正常分配确实支持多个目标,因此您可以将同一表达式分配给多个变量.这当然仍然只允许你在右侧有一个表达式(仍然没有声明).在你的情况下,既然你想要b
并x
最终得到相同的值,你可以像这样写:
b = x = x + 1 c = x = x + 1
请注意,由于您正在进行操作x = x + 1
,因此不再使用扩充分配,因此对某些类型可能会产生不同的效果(尽管不是整数).