为什么这种打印方式有两种不同的关键?

时间:2017-07-09 19:04:55

标签: python

为什么print key会产生水果名称列表,但print prices[key]会产生每个水果后的数字? key应该打印相同的东西(水果名称)吗?

这是代码

    prices = {
    "banana" : 4,
    "apple"  : 2,
    "orange" : 1.5,
    "pear"   : 3,
}
stock = {
    "banana" : 6,
    "apple"  : 0,
    "orange" : 32,
    "pear"   : 15,
}

for key in prices:
    print key
    print "price: %s" % prices[key]
    print "stock: %s" % stock[key]

结果如下

orange price: 1.5 stock: 32 pear price: 3 stock: 15 banana price: 4 stock: 6 apple price: 2 stock: 0

3 个答案:

答案 0 :(得分:1)

语句for key in prices为您提供字典的键。语句print prices[key]为您提供与密钥相关联的值。

答案 1 :(得分:0)

NVM我之前写的(误读问题)。与其他帖子状态一样,您使用语句print key打印字典的键,然后在执行print price[key]时打印与键相关联的值,以便打印所有内容你可以做以下

for key in prices:
    print "item: ", key, " price: ", prices[key], " stock: " stock[key]

如果股票字典FYI中不存在,则上述将抛出一个关键错误。

以下是类似问题https://stackoverflow.com/a/5905166/3990806

的可靠答案

答案 2 :(得分:0)

for key in prices:

相当于:

for key in prices.keys():

也就是说,您正在迭代字典的prices[key]正在检索与对应密钥关联的词典中的。也就是说,

prices[key]

相当于

prices.values()[prices.keys().index(key)]

如果要在字典中使用values()方法获取值列表,并且如果要获取键列表(例如词典中的水果名称),请使用keys()方法。