什么是Pythonic将空列表分配给变量的方法?

什么是Pythonic将空列表分配给变量的方法?,python,Python,我想将空列表分配给多个变量。我试过这些: # method 1 a = b = [] # method 2 c, d = [], [] print('\nBefore') print(f'a: id={id(a)} value={a}') print(f'b: id={id(b)} value={b}') print(f'c: id={id(c)} value={c}') print(f'd: id={id(d)} value={d}') b = [1,2,5] c = [6,4,2]

我想将空列表分配给多个变量。我试过这些:

# method 1
a = b = []

# method 2
c, d = [], []


print('\nBefore')
print(f'a: id={id(a)} value={a}')
print(f'b: id={id(b)} value={b}')
print(f'c: id={id(c)} value={c}')
print(f'd: id={id(d)} value={d}')

b = [1,2,5]
c = [6,4,2]

print('\nAfter')
print(f'a: id={id(a)} value={a}')
print(f'b: id={id(b)} value={b}')
print(f'c: id={id(c)} value={c}')
print(f'd: id={id(d)} value={d}')
我可以看到的区别是,a和b在初始化时都指向同一个位置,但在赋值后会发生变化。什么是Pythonic方式将空列表分配给多个变量

编辑:问题不在于如何分配多个变量,而在于分配多个变量的Python方式(更好的方式)是什么

最简单的解决方案:

a = b = c = d = []
在我看来,这相当类似于python,尽管这将是对单一列表对象的相同引用(
a.append(“foo”)
也会变异
b
c
,和
d

要初始化完全独立的列表对象,如注释中所述:

a, b, c, d = ([] for _ in range(4))

我同意,这不是非常漂亮。但是您真的需要四个独立的列表变量吗?以下是我认为你应该做的:

lists = ([] for _ in range(4))

然后,您可以使用
列表[0]
访问不同的列表到
列表[3]

a,b=list(),list()
您是否需要将列表作为单独的对象(在实习期间工作)我听说[]比list()更好!当list()调用一个函数时,我的fav是
a,b=[[]用于范围(2)]
我不确定它是否重复,因为问题是哪种方式更好,而不是如何分配variables@PraysonW.Daniel这取决于你如何定义“更好”。如果希望所有变量都指向同一个列表对象,请使用第一个方法。如果希望它们都是单独的列表对象,请使用第二个(或复制目标中的任何其他对象)。
a=b=[]
意味着对
a
的任何就地更改也将出现在
b
b
只是“a”对象的另一个“名称”。@hpaulj我认为这一点从紧跟其后的句子中可以清楚地看出。
lists = ([] for _ in range(4))