2014-05-05 23 views
-2

是否有可能增加一個隨機數與random.randint一個快譯通創造?或者將它添加到列表中更好一些。我問,因爲我想得到random.randit(0,100),並檢查它的名單或字典已經是現在生成的號碼,並打印出第二個相同號碼的位置Randint數爲快譯通

所以我已經嘗試過附加到一個字典,但不起作用!

編輯

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

是的,當然它是 - 你嘗試過什麼,什麼正是你的意思是它不工作?你把'append'添加到'list',而不是'dict'。 – jonrsharpe

+0

請說明你做了什麼沒有奏效。你對你想要的描述不是很清楚,也許代碼可能更具啓發性。 – SethMMorton

+0

只是一個時刻,我將它添加 – ThePom

回答

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不在列表中,當我們尋找最大的前指數),我們可以不再使用list.index(其中找到第一索引) - 需要更復雜的計算。

這給:

0 
New item. 
4 
New item. 
10 
New item. 
10 
Item found at index 2. 
3 
New item. 
4 
Item found at index 1. 
1 
New item. 
8 
New item. 
8 
Item found at index 7. 
1 
Item found at index 6. 
[0, 4, 10, 10, 3, 4, 1, 8, 8, 1] 
+0

但是你可以問,如果數量是一個字典,所以如果我想將其添加到一個字典我必須給每一個數字的按鍵或? – ThePom

+0

你可以使用一個'set',這實際上是隻用鍵的字典,但是他們沒有保證的順序或指數無論是。您可以將隨機數字作爲鍵值放入字典中,其索引作爲鍵,但您最好使用列表。 – jonrsharpe

+0

你的代碼不給第二相同數目的現在的位置,也許,如果1是在5位和12第二它應該給了12 – ThePom