gpt4 book ai didi

python:正确使用字典

转载 作者:行者123 更新时间:2023-12-01 05:14:25 24 4
gpt4 key购买 nike

我尝试创建一个函数,它生成随机 int 值,并且在某个值出现两次后,该函数应返回所有生成的 int 值的数量。我必须使用字典。

这是我到目前为止的代码:

def repeat(a,b):
dict={}
d=b-a+2
for c in range(1,d):
dict['c']=random.randint(a,b)
for f in dict:
if dict['f']==dict['c']:
return c

第一个问题:它不起作用。

>>> repeat(1,5)
Traceback (most recent call last):
File "<pyshell#144>", line 1, in <module>
repeat(1,5)
File "<pyshell#143>", line 7, in repeat
if dict['f']==dict['c']:
KeyError: 'f'

第二个问题:if dict['f']==dict['c']:第一步应该为 true,因为两个值相同。

我找不到一种聪明的方法来比较所有值而不将键与其自身进行比较。

抱歉我的英语不好,有点生疏,谢谢您的宝贵时间。

最佳答案

将变量名称括在引号中会使它们成为字符串 - Python 正在查找字母 f 的键,而不是 f 变量中带有整数的键。

只需正常使用该变量,它应该按您的预期工作:

def repeat(a, b):
stored = {}
d = b - a + 2
for c in range(1, d):
stored[c] = random.randint(a, b)
for f in stored:
if stored[f] == stored[c]:
return c

另请注意,您通过命名变量 dict 来隐藏内置函数 dict() - 因此最好使用其他名称。

关于python:正确使用字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23502546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com