繁体   English   中英

python中的“variable,variable =”语法?

[英]“variable, variable =” syntax in python?

我刚刚开始使用python,或者没有读过这个,或者错过了它,我不知道该搜索什么来找到我的答案。

玩IMAP模块我遇到了这行代码。

result, data = mail.search(None, "ALL")

这两个变量发生了什么? 这是方法以某种方式返回时使用的语法,还是始终有效? 有人可以解释这里发生了什么,或者指出一些文档?

这是序列解包的一种形式。 如果RHS是长度为2的可迭代(因为LHS上有2个对象),您可以使用它。 例如:

a,b = (1, 2)  #The RHS here is a tuple, but it could be a list, generator, etc.
print a #1
print b #2

Python3以一种有趣的方式扩展了这一点,允许RHS拥有比LHS更多的值:

a,b,*rest = range(30) 
print(a) #0
print(b) #1
print(rest == list(range(2,30))) #True

您可以在一行中分配Python中的多个变量: -

a, b, c = 1, 2, 3

分别为a,b,c分配三个值1,2,3。

同样,您可以将列表中的值分配给变量。

>>> li = [1, 2, 3]    
>>> a, b, c = li
>>> a
1
>>> b
2

这会将您的列表解压缩为3个变量

这是多重赋值:变量result和data同时获取mail.search(none,ALL)返回的新值。

在进行任何分配之前,首先评估右侧的表达式。 右侧表达式从左到右进行评估。

多个任务文档在这里

http://docs.python.org/tutorial/introduction.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM