&引用;变量,变量=";python中的语法?
我刚刚开始学习python,要么没有读过,要么错过了,我不知道要搜索什么来找到我的答案 在使用IMAP模块时,我遇到了这行代码&引用;变量,变量=";python中的语法?,python,Python,我刚刚开始学习python,要么没有读过,要么错过了,我不知道要搜索什么来找到我的答案 在使用IMAP模块时,我遇到了这行代码 result, data = mail.search(None, "ALL") 这两个变量发生了什么?这是一种在方法返回特定方式时使用的语法,还是始终有效?有人能解释一下这里发生了什么,或者给我指一些文档吗?您可以在一行Python中分配多个变量:- a, b, c = 1, 2, 3 分别为a、b、c指定三个值1、2、3 类似地,您可以将列表中的值分配给变量 &g
result, data = mail.search(None, "ALL")
这两个变量发生了什么?这是一种在方法返回特定方式时使用的语法,还是始终有效?有人能解释一下这里发生了什么,或者给我指一些文档吗?您可以在一行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个变量这是序列解压的一种形式。如果RHS是长度为2的iterable(因为在LHS上有2个对象),则可以使用它。e、 g:
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
这是多重赋值:变量result和data同时获得mail.search返回的新值(none,ALL) 在进行任何赋值之前,将首先计算右侧的表达式。右侧表达式从左到右求值 多重分配文档在这里
另一方面,
a,b=b,a
是一种巧妙的python式交换值的方式:)我第一次看到自己floored@JoranBeasley--我从来没有发现真正需要在我的代码中交换值,但每次我看到它都会让我发笑。它的另一个名字是解构。@RolandTepp--很有趣。我以前没见过这个词。下次我得去找它。