dict麻烦

时间:2017-07-22 12:29:07

标签: python python-3.x

尝试在python中编写一个程序来显示库存中每个项目的库存和数量,但是难以从dict中提取值... 在Win10上使用Python 3.5,通过默认的Python编辑器 从第5章开始,使用Python自动化无聊事物"

i={'color':'red','gold':3}
def bP(n):
    inv=''
    for v in n:
        print (str(n)+':'+str(n[v])) #Problem is first print not displaying value 
bP(i)

4 个答案:

答案 0 :(得分:3)

您也可以按键值对迭代字典。检查手册。这是一个例子。

for k, v in dict.items():
  print(k, v)

答案 1 :(得分:3)

i={'color':'red','gold':3}

def bP(n):
    inv='' 
    for key,value in n.items():
        print (str(key)+':'+str(value))
bP(i)

当你迭代dict时,应该使用items()方法

答案 2 :(得分:2)

您正在尝试打印str(n) dict。或者,您可以loop通过字典中的项目,如下所示:

for k, v in n.items():
    print('{}:{}'.format(k, v))

在您的情况下,您可以通过更改str(n)

来解决此问题
for v in n:
    print('{}:{}'.format(v, n[v]))

答案 3 :(得分:2)

考虑以下示例:

d={'color':'red','gold':3}

for key,value in d.items():
    print(key,value)

输出:

gold 3
color red

d.items()输出一个键值对。

此外,

for item in d.values():
    print(item)

输出:

3
red

但是,

for key in d.keys():
    print(key)

输出:

gold
color

然而这样做会产生与上面相同的结果,

for key in d:
    print(key)

输出:

gold
color

所以在你的情况下,

for v in n:
    print (str(n)+':'+str(n[v]))

应该是,

for v in n:
    print (str(v)+':'+str(n[v]) )

如果变量更有意义,那就是

for key in my_dict:
    print (str(key)+':'+str(my_dict[key]))  #my_dict[key] is value