Python中for循环的元组解包语法是什么?如何访问列表元素?
关于Python中
for (age, handicap) in data的语法解释 你看到的这个写法叫做序列解包(Sequence Unpacking),而且括号()其实是可选的,写成for age, handicap in data效果完全一样。
具体工作原理:
data里的每个元素都是长度为2的列表(比如[18,20]),而列表属于Python的序列类型,只要是长度固定的序列(比如元组、列表),都可以用这种方式解包。- 当循环遍历
data时,每拿到一个子序列(比如[61,12]),Python会自动把序列里的元素按位置对应赋值给左边的变量:第一个元素赋值给age,第二个赋值给handicap。 - 举个实际循环的例子:
第一次循环:age = 18,handicap = 20
第二次循环:age = 45,handicap = 2
以此类推,直到遍历完data里的所有子列表。
扩展说明:
这种解包写法不止能用在for循环里,日常赋值也经常用到,比如:
a, b = [3, 5] print(a) # 输出3 print(b) # 输出5
需要注意的是,左边的变量数量必须和右边序列的元素数量完全一致,否则会抛出ValueError。
在你提供的列表推导式里,每次解包后通过判断age >=55 and handicap >=8,生成对应的"Senior"或"Open"字符串,最终得到符合要求的结果列表。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

