gpt4 book ai didi

python - 两个基本的 Python 字典问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:49 37 4
gpt4 key购买 nike

问题 1.)

for a,a in dict.items():
print a

为什么上面打印值,如果我打印 a,a - 显然两个值都打印了两次。如果我输入了 a,b,我会迭代 (key,value) 对,所以我逻辑上认为我现在正在迭代 (key,key) 对,因此会打印键而不是值。很抱歉这些基本问题只是在解释器中玩弄并试图弄清楚。

问题 2.)

for key,value in dict.items():
print "%s is the key that corresponds to the value %s"%(key,value)

上面的例子对我来说很有意义,但为什么:

for key in dict.items():
print "%s is the key that corresponds to the value %s"%(key)

产生相同的结果?是因为即使我们没有在 for 语句中将元组解包为两个单独的变量,它在字符串格式化程序中通过key 调用 - 基本上是 %(key) = (key,value)?

最佳答案

Q1:

考虑以下几点:

>>> d = {"a": 1, "b": 2, "c": 3}
>>> xs = d.items()
>>> a, a = xs[0]
>>> print a, a
1 1

这实际上是正在发生的事情。您正在将每个 (key, value) 对解包到 (a, a) 中,有效地以 (value, value) 结束。对 key 的引用丢失。

这等同于:

>>> a, a = 1, 2
>>> print a, a
2, 2

解包期间解释器中发生了什么:

  1. a 变为 1
  2. a 变为 2

Q2:

考虑以下几点:

>>> a, b = ("a", 1)
>>> print "%s=%s" % (a, b)
a, 1
>>> x = ("a", 1)
>>> print "%s=%s" % x
a, 1

两者实际上是一样的。由于您的字符串插值需要 (a, b)x(2 个值的元组)的两个元组,因此可以有效地满足这一点。

关于python - 两个基本的 Python 字典问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24750060/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com