【问题标题】:what exactly happens if I set two parameter in for statement? [duplicate]如果我在 for 语句中设置两个参数会发生什么? [复制]
【发布时间】:2021-07-28 13:46:33
【问题描述】:
lst = ['first', 'second']

for q,w in lst:
 print(q)
 print(w)

如果我这样设置我的代码,结果是一个错误。 但如果我这样做:

lst = [['first', 'second']]

  for q,w in lst:
    print(q)
    print(w)

输出是 #first #second 。

我不明白这个机制..有人可以帮助我吗?

【问题讨论】:

  • 您的意思是从for 循环内的列表中解包项目?
  • 试试lst = [[1,2], [3,4], [5,"got it?"]]
  • 当您搜索 python for loop tuple unpacking site:stackoverflow.com 时,您会发现围绕同一主题的许多其他问题 - 我选择了一个作为欺骗您的问题。

标签: python for-loop syntax iterable-unpacking


【解决方案1】:

for 循环是赋值语句的一种形式。每次迭代都会为目标分配一个新值,就像在简单的赋值语句中一样,目标可以是一个用于元组解包的序列。

你的循环相当于

for t in lst:
    q, w = t
    print(q)
    print(w)

关键区别在于,在您的第一个代码中,t 是一个超过 2 个字符的字符串,因此解包失败。在第二个代码中,t 是一个恰好有 2 个元素的列表,因此解包成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    相关资源
    最近更新 更多