Skip to main content
 首页 » 编程设计

python之一次分配多个变量,Python

2025年05月04日9think

有更好的方法吗?

a, b, c, = "yyy", "yyy", "yyy" 

明显的尝试失败了

a, b, c, = "yyy" 
a, b, c = "yyy"*3 

从技术上讲,以下是可行的,但我认为这并不直观,因为这个逻辑表明 a、b 和 c 是相同的,而我想做的只是说它们初始化为相同的值

a=b=c="yyy" 

请您参考如下方法:

这里不需要使用元组赋值;右侧的值是不可变的,因此您也可以共享引用:

a = b = c = 'yyy' 

在我看来,这一点也不奇怪,python 编译器只需要用字节码存储一个常量,而使用元组赋值需要一个额外的元组常量:

>>> def foo(): 
...     a, b, c = 'yyy', 'yyy', 'yyy' 
...  
>>> foo.__code__.co_consts 
(None, 'yyy', ('yyy', 'yyy', 'yyy')) 
>>> def bar(): 
...     a = b = c = 'yyy' 
...  
>>> bar.__code__.co_consts 
(None, 'yyy') 

如果右侧表达式是可变的并且您希望a、b 和c 具有独立的对象,请不要使用它;然后使用生成器表达式:

a, b, c = ({} for _ in range(3)) 

或者更好的是,不要那么懒惰,直接输入它们:

a, b, c = {}, {}, {} 

你的左手赋值并不是动态的。