创建一个字典使用数字作为键和值存储在python列表中的整数?

时间:2013-10-15 16:43:18

标签: python python-2.7 dictionary

我正在Project Euler上做Problem 8,我接下来要做的是创建一个带有1到1000个键的dict,并且每个数字都是数字。

我尝试了各种方法,包括尝试使用1-1001的范围创建密钥并嵌套循环迭代数字,然后尝试intDict [k] = j其中k是范围循环中的数字,j来自数字循环,但似乎无法正确。 怎么能实现这一目标? 感谢。

到目前为止我的代码:

def lrgProdOf5Numbers():
intDict = {}
highest = 0
f= open("1000dig.txt","r")
d = f.read()
f.close()
digits = [int(e) for e in str(d) ] #convert each number in string  to int

2 个答案:

答案 0 :(得分:1)

*修改

我明白了。您的文本文件是从问题中复制的数字块。这应该工作。正如其他人提到的那样,我想你可能只是错过了清除换行符。

with open('1000dig.txt', 'r') as f:
    num_string = ''.join((line.strip() for line in f.readlines()))

d = {i: digit for i, digit in enumerate(num_string)}

这是你的意思吗?

答案 1 :(得分:1)

究竟是什么问题?你有任何错误吗?

如果您在列表理解中发现错误,则可能需要从“d”中删除换行符。

更新(根据kobejohn的回答和您的回复):

d = {i: digits[int(i)] for i in range(15)}