分配空列表

时间:2016-09-22 16:23:42

标签: python list binding

我真的不知道我是如何偶然发现的,我不知道该怎么想,但显然[] = []是python中的合法操作,[] = ''也是如此,但是'' = []是不允许的。它似乎没有任何影响,但我想知道:到底是什么?

2 个答案:

答案 0 :(得分:3)

这与Python的多重赋值(序列解包)有关:

a, b, c = 1, 2, 3

的作用与:

相同
[a, b, c] = 1, 2, 3

由于字符串是字符序列,您也可以这样做:

a, b, c = "abc"    # assign each character to a variable

您发现的是退行性病例:两侧空序列。在语法上有效,因为它是左边的列表而不是元组。很好找;从来没有想过尝试过!

有趣的是,如果你尝试使用左侧的空元组,Python会抱怨:

() = ()            # SyntaxError: can't assign to ()

看起来Python开发人员忘了关闭一点漏洞!

答案 1 :(得分:1)

在python上搜索打包/解包时,你会找到你的答案。 这基本上是为了一次性分配多个变量。

>>> [a,v] = [2,4]
>>> print a
2
>>> print v
4