【发布时间】:2020-01-29 08:27:06
【问题描述】:
我的要求是通过 Python 字典功能从范围 (1, 60) 迭代 for 循环打印出以下映射。基本上我想要将 1 映射到 10001,将 2 映射到 10002 的输出............将 60 映射到 10060
{ 1: 10001, 2: 10002, 3: 10003, 4: 10004
….
….
58: 10058, 59: 10059, 60: 10060 }
我是字典功能的新手。谁能帮我退回类似上面的东西?
【问题讨论】:
-
my_dic = dict(zip(range(1, 61), range(10001, 10061))试试看。 -
使用这个:
{i:i+10000 for i in range(1,61)}这是一个 dict 理解。无需为此使用 zip 或多个范围。 -
您有这本词典并想打印它,还是要创建这本词典?请提供代码示例和预期输出。
-
@TomKarzes 为什么要避免这些? IMO 可能更快且可读性更好
-
@juanpa.arrivillaga 主要原因是清晰。有两个参数:60和10000。我的版本比较简洁,每个参数使用一次。你必须努力才能弄错。 dict/zip 版本使用 60 两次(61 和 10061)和 10000 两次(10001 和 10061)。你必须努力不才能弄错。话虽如此,我的 Python 2 更快,你的 Python 3 更快(字典理解在 Python 3 中变慢,而 dict/zip 变得更快)。不知道为什么理解比以前慢。
标签: python python-3.x dictionary for-loop