字典和循环

时间:2013-01-13 03:52:29

标签: python

说以下是我们的代码:

d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
    print(i)

现在print(i)会打印出关键字,但是如何更改它以便打印出值?

4 个答案:

答案 0 :(得分:2)

d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
    print(i, d[i]) # This will print the key, then the value

d = {"Happy":"Clam", "Sad":"Panda"}
for k,v in d.items(): # A method that lets you access the key and value
    print(k,v) # k being the key, v being the value

答案 1 :(得分:1)

d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
        print(i, d[i])

给我:

('Sad', 'Panda')
('Happy', 'Clam')

答案 2 :(得分:1)

Python dict有许多方法可用于获取键,值或两者的列表。

要回答您的问题,您可以使用d.values()来获取值列表:

d = {"Happy":"Clam", "Sad":"Panda"}
for v in d.values():
   print(v)

输出:

Clam
Panda

items()方法特别有用,所以应该提及。

d = {"Happy":"Clam", "Sad":"Panda"}
for k, v in d.items():
   print(k, v)

将打印:

Happy Clam
Sad Panda

关于文档中项目排序的警告:

  

CPython实现细节:键和值列在   非随机的任意顺序因Python而异   实现,并取决于字典的插入历史   和删除。

答案 3 :(得分:0)

一种简单的方法是为每个循环使用a

for value in d.values:
    print(value)

你也可以制作一台发电机。生成器是可以停止和恢复的可迭代序列。

def generator(input):
    for value in input.values():
        yield value

gen = generator(d);
print(d.next()) // Clam

// Doing complex calculations
answer = 21 + 21

print(d.next()) // Panda

另一种方法是使用高阶函数'map'。

map( print, d.values() )

// You can also use generators ;)
map( print, gen )

最后,在python 3中,字典现在支持压缩。字典压缩非常适合创建字典,而不是打印每个条目值的内容。这是值得谷歌搜索的东西,因为python中的所有内容都是字典。