有关python的w3w词典练习问题的问题

时间:2020-08-30 07:25:19

标签: python dictionary

对于其中一项练习的词典来说,这是一个非常基本的问题。问题是 : 编写Python脚本以生成并打印包含(x,x * x)形式的数字(在1到n之间)的字典。

这是我的代码:

import random
def dict_generate():
    n = int(input("Please enter an integer:"))
    dic = {}
    for x in range(n):
        num = random.randrange(1,n)
        key = num
        value = num*num
        dic[key] = value
    
    print(dic)

dict_generate()

但是,当我运行它时,它似乎跳过了几次迭代,因此最终结果是,我得到的字典中的值小于输入的数字。例如,我输入了5,但不是5组键和值,我的输出是这样的: {3:9,1:1,1:2:4}

通过python导师运行此代码,问题似乎在于未将值插入字典中。我似乎不明白为什么。如果有人可以解释,那将真的很有帮助,谢谢。 (我知道还有很多其他方法可以解决这个问题,但我想了解我哪里出了问题。)

1 个答案:

答案 0 :(得分:0)

 num = random.randrange(1,n)
 key = num

由于您将密钥用作随机数,因此密钥可能会一次又一次出现相同的数字,因此您的词典中的密钥少于5个。

enter image description here