为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的元组匹配与变量赋值

Python中的元组匹配与变量赋值

手掌心 2022-08-16 16:07:39
我一直认为元组匹配与变量赋值相同,所以我认为这两段代码做了同样的事情:a = bb = a + b和a, b = b, a + b但是,在以下两段代码中,情况并非如此,它们为我提供了不同的输出:def fib(seq_len):    a = 1    b = 1    sequence = []    for i in range(seq_len):        sequence.append(a)        a, b = b, a + b    return sequencefib(10)它给出输出:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]和def fib(seq_len):    a = 1    b = 1    sequence = []    for i in range(seq_len):        sequence.append(a)        a = b        b = a + b    return sequencefib(10)它给出以下输出:[1, 1, 2, 4, 8, 16, 32, 64, 128, 256]似乎在 的第一个定义中,前面的值被用于,但我不明白它如何记住以前的值,因为我们已经分配给了另一个值,即 在转到之前fibaa, b = b, a + babb = a + b
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

a, b = b, a + b等效于


t = b, a + b

a, b = t


a = b

b = a + b  # essentially, b = 2 * b

在执行任一分配之前,必须完全评估右侧。


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信