是否可以使用random.randint创建随机数创建到Dict?或者将它添加到List更好。我问,因为我想获得random.randit(0,100)并检查它是否已经生成了List或Dict已经生成的数字并打印出第二个相同数字的位置
所以我已经尝试过附加到一个字典但是并没有这样做。工作!
修改
import random
randomdict = {}
numbposition = {}
def randomnumber(numb):
for i in random.randint(0,numb+1):
randomdict.append(i)
if i in randomdict:
numbposition.index(i)
print (numbposition)
print (randomdict)
while True:
numb = int(input('Give me number: '))
print(randomnumber(numb))
break
答案 0 :(得分:0)
当然可以将random.randint
返回的值添加到字典或列表中;它只是一个整数,可以像其他任何一样对待。但是,你不能append
到字典;该语法用于添加到列表的末尾,使用d[key] = value
将新对象添加到字典中。此外,字典也没有与例如字典相同的索引。列表和元组呢;只是一把钥匙,没有保证订单。
以下示例与您所描述的内容非常接近:
import random
l = []
for _ in range(10):
n = random.randint(0, 10)
print(n)
if n not in l:
print("New item.")
l.append(n)
else:
print("Item found at index {0}.".format(l.index(n)))
print(l)
这个输出是:
2
New item.
2
Item found at index 0.
2
Item found at index 0.
1
New item.
3
New item.
10
New item.
6
New item.
4
New item.
4
Item found at index 5.
10
Item found at index 3.
[2, 1, 3, 10, 6, 4]
修改强>
要添加所有数字并获得最大的预先存在的索引,您需要稍微调整一下:
if n not in l:
print("New item.")
else:
index = max(i for i, v in enumerate(l) if v == n)
print("Item found at index {0}.".format(index))
l.append(n)
请注意,append
会移到最后(因此,当我们查找最大的先前索引时,列表中的新n
不会出现),我们将无法再使用{{1} (找到第一个索引) - 需要更复杂的计算。
这给出了:
list.index