在单个语句中初始化具有不同值的不同变量

时间:2014-04-22 11:30:40

标签: python

我有python变量,如下所示。

global a,b,c

我想在一个语句中用不同的值初始化所有这些变量。

有可能吗?

a=b=c=uuid.uuid1() //should return different values for a,b and c

2 个答案:

答案 0 :(得分:5)

三次致电uuid.uuid1()

a, b, c = uuid.uuid1(), uuid.uuid1(), uuid.uuid1()

你可以把它作为一个循环,但是对于3个固定项目,为什么要这么麻烦?此外,对于像这样只有2或3个元素的解包赋值,CPython编译器optimizes the bytecode

如果您仍然使用循环(如果您要分配更多目标),请使用生成器表达式并避免创建列表对象:

a, b, c, d, e, f, g, h = (uuid.uuid1() for _ in xrange(8))

答案 1 :(得分:1)

您可以使用生成器执行此操作:

a,b,c = (uuid.uuid1() for _ in range(3))

当您有批次变量来分配数据时,它会特别有用。

实施例

a,b,c = (randint(1,10) for _ in range(3))

>>> print a,b,c
7 2 9