最优雅的方式是将多个变量分配给相同的值?

Hir*_*uri 7 python variable-assignment

这个问题可能已经被问过了,但我找不到一个合适的方法来将多个变量分配给一个值而不将它们链接到它,所以请耐心等待.

例1:

a = b = []
a.append('x')
> a = ['x']
> b = ['x']
Run Code Online (Sandbox Code Playgroud)

因为我追加'x'a我不想拥有它b.


例2:

a, b = [[], []]
a.append('x')
> a = ['x']
> b = []
Run Code Online (Sandbox Code Playgroud)

按预期工作,但有多个变量,它变得非常丑陋:

a, b, c, d, e, f, g, h, i j = [[], [], [], [], [], [], ...]
Run Code Online (Sandbox Code Playgroud)

例3:

默认方式

a = []
b = []
...
Run Code Online (Sandbox Code Playgroud)

与示例2相同,它与多个变量不同.

我想知道像javascript这样的东西是否存在?

a, b, c = [] #this actually gives a ValueError: not enough values to unpack
Run Code Online (Sandbox Code Playgroud)

有什么建议或我限于此吗?

注意:出于某种原因,我必须避免使用字典来执行此任务.(局限性...)

dec*_*eze 7

我建议你首先使用较少的自变量.字面上包含的任何代码都a, b, c, d, e, ...应该重构为更简单的代码.

话说回来:

a, b, c = ([] for _ in range(3))
Run Code Online (Sandbox Code Playgroud)

生成器[]为您在中指定的项目创建一个新项目range.

  • @Bazingaa虽然效率更低,因为它创建了一个无用的中间列表. (2认同)