python - 字典查询Python?

标签 python python-3.x

我有一本包含大量问题和答案的字典。问题是关键,值(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/

相关文章:

python - 不显示图标

python - 调整 Canvas /框架大小时如何防止窗口闪烁?

python - 创建并运行 python 文件

python-3.x - 合并多个 mp4 视频和图像

python - 如何检查另一个程序中的任务是否已完成?

python-3.x - Image Magick命令的等效OpenCV代码

Python Celery 线程、工作线程和 vCPU

python - flask : TypeError: 'str' object is not callable

python - 错误 UnicodeDecodeError : 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

python - Sqlalchemy 可以很好地处理多个附加的 SQLite 数据库文件吗?