-1

说下面是我们的代码:

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

now print(i) 将只打印出键,但是我如何更改它以便打印值?

4

4 回答 4

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
于 2013-01-13T03:55:12.853 回答
1
d = {"Happy":"Clam", "Sad":"Panda"}
for i in d:
        print(i, d[i])

给我:

('Sad', 'Panda')
('Happy', 'Clam')
于 2013-01-13T03:56:38.350 回答
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 实现而异,并且取决于字典的插入和删除历史。

于 2013-01-13T04:02:14.607 回答
0

一种简单的方法是使用 for each 循环

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 中的所有内容都是字典。

于 2013-01-13T09:14:57.100 回答