请求解析Python中a,b=['apple','banana']的赋值语法
解析Python语句
a,b=['apple','banana'] 的工作原理 这是Python自带的序列解包特性,核心就是把序列(像列表、元组这类有序集合)里的元素,按位置对应分配给多个变量。
具体到这句代码:
- 右边是一个包含两个元素的列表
['apple','banana'],属于序列类型; - 左边是两个变量
a和b组成的变量组; - Python会自动把序列的第一个元素
'apple'赋值给第一个变量a,第二个元素'banana'赋值给第二个变量b。
至于为什么不是两个变量都拿到整个列表?那是另一种赋值逻辑:如果写a = b = ['apple','banana'],才会让a和b都指向同一个列表对象。而原语句用的是解包语法,要求左边变量的数量必须和右边序列的元素数量一致(数量不匹配会直接报错,比如左边3个变量右边2个元素,Python会抛出ValueError)。
另外,这种解包不止适用于列表,元组、字符串也能这么用:
- 元组解包:
a,b=('apple','banana'),甚至可以省略括号写成a,b='apple','banana',效果完全相同; - 字符串解包:
x,y='ab',执行后x是'a',y是'b'。
内容的提问来源于stack exchange,提问作者Gurvinder Saini
相关产品推荐
相关产品推荐

