我一直在尝试学习 Python 并遇到了这个问题。我无法弄清楚当前输出是如何产生的。
d={'k1':1,'k2':2,'k3':3}
for key,value in d.keys() :
print(key)
Output:
k
k
k
我期望输出是:
k1
k2
k3
最佳答案
您正在尝试打印字典 d
中的所有键值对。但是当您尝试打印 key
时,您只能看到 key 的第一个字符。我将通过拆分 for 循环 for key,value in d.keys()
来向您解释。
这是你的字典,d
d = {'k1':1,'k2':2,'k3':3}
for
循环采用d.keys()
并进行迭代。 d.keys()
看起来像这样
print(d.keys()) # outputs dict_keys(['k1', 'k2', 'k3'])
for
循环遍历此键列表 ['k1', 'k2', 'k3']
但是当你这样做的时候,这
key,value = 'k1' # this happens with each of the keys in the list
print(key,value) # output k 1
您的 key k1
被拆分为两个单字符串 k
和 1
这可以称为 无意的元组创建 @inquisitiveOne并分别分配给 key
和 value
变量。
当您尝试在 for
循环中打印 value
时,您会看到 1, 2, 3
但实际上是第二个key
属性的字符,而不是 value
属性的字符。如果你尝试打印,print(type(value))
你会知道它实际上是一个 string
变量而不是 integer
.
要获得 key
的正确值,您只需要使用一个变量。
d={'k1':1,'k2':2,'k3':3}
for key in d.keys():
print(key)
输出:
k1
k2
k3
如 @asikorski 所述您可以使用 for key in d: print(key)
如果需要获取键值对。然后使用d.items()
for key,value in d.items():
print(key,value)
输出:
k1 1
k2 2
k3 3
希望对您有所帮助!
关于python - 为什么输出不显示 k1、k2、k3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232777/