Randint号码变成了Dict

时间:2014-05-05 17:06:52

标签: python random

是否可以使用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

1 个答案:

答案 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