我有一本包含大量问题和答案的字典。问题是关键,值(value)观是答案。我试图一次打印 800 个问题中的 15 个问题,其值必须与问题相匹配,这就是为什么我使用字典而不是列表。我提供了一个更简单的代码示例,以使其更清楚我想要什么。这只是我的800 个问题中的一小部分。我有多项选择,所以 A,B,C,D
My_dict = {'What is your name?':'Emma','What is your age':34,'What color eyes do you have':'Blue'}
for i in range(3):
print(next (iter(My_dict.keys())))
当我运行它时我得到的是这个
What is your age
What is your age
What is your age
我想要的是这个
What color eyes do you have
What is your age
What is your name?
这对于一本小字典来说很好,但是正如我上面所说的,我有800个问题我只想一次打印15个问题,这就是我遇到问题的地方。> 到目前为止,我所能做的就是打印 1 个问题 15 次或字典 15 次。 **我想要的是字典中的 15 个键及其值 **
最佳答案
您正在创建 15 个独立的迭代器,每个迭代器都从头开始。尝试仅创建一个迭代器并仅对其调用 next
。
My_dict = {'What is your name?':'Emma','What is your age':34,'What color eyes do you have':'Blue'}
x = iter(My_dict.keys())
for i in range(3):
print(next (x))
结果:
What color eyes do you have
What is your name?
What is your age
<小时/>
但请注意,“你叫什么名字?”尽管是代码第一行字典文字中出现的第一个键,但并未首先打印。这是因为字典是无序的;当迭代字典的键/值时,Python 可以按照它喜欢的任何顺序自由地生成项目。如果您需要按特定顺序打印问题,请考虑使用collections.OrderedDict
。
import collections
My_dict = collections.OrderedDict((('What is your name?','Emma'),('What is your age',34),('What color eyes do you have','Blue')))
x = iter(My_dict.keys())
for i in range(3):
print(next (x))
结果:
What is your name?
What is your age
What color eyes do you have
或者,如果您不是特别需要在给定问题内容的情况下持续访问答案,那么最好根本不使用字典:
my_tuple = (('What is your name?','Emma'),('What is your age',34),('What color eyes do you have','Blue'))
for i in range(3):
print my_tuple[i][0]
关于python - 字典查询Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35089912/