当前位置:  开发笔记 > 编程语言 > 正文

在一行上分配和增加值

如何解决《在一行上分配和增加值》经验,为你挑选了1个好方法。

是否可以在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中是不可能的.

作业(或增强作业)是声明,因此可能不会出现在另一作业的右侧.您只能将表达式分配给变量.

其原因很可能是避免因支持这种情况的其他语言容易引起的副作用造成的混淆.

但是,正常分配确实支持多个目标,因此您可以将同一表达式分配给多个变量.这当然仍然只允许你在右侧有一个表达式(仍然没有声明).在你的情况下,既然你想要bx最终得到相同的值,你可以像这样写:

b = x = x + 1
c = x = x + 1

请注意,由于您正在进行操作x = x + 1,因此不再使用扩充分配,因此对某些类型可能会产生不同的效果(尽管不是整数).



1> poke..:

不,这在Python中是不可能的.

作业(或增强作业)是声明,因此可能不会出现在另一作业的右侧.您只能将表达式分配给变量.

其原因很可能是避免因支持这种情况的其他语言容易引起的副作用造成的混淆.

但是,正常分配确实支持多个目标,因此您可以将同一表达式分配给多个变量.这当然仍然只允许你在右侧有一个表达式(仍然没有声明).在你的情况下,既然你想要bx最终得到相同的值,你可以像这样写:

b = x = x + 1
c = x = x + 1

请注意,由于您正在进行操作x = x + 1,因此不再使用扩充分配,因此对某些类型可能会产生不同的效果(尽管不是整数).

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有