2016-10-04 62 views

回答

4
winner.append(list.pop(random.randrange(0,len(list)))) 

要打破下來:

random.randrange(0,len(list)) 

會產生零之間,然後將列表包容的長度的隨機數。這將在您的列表中生成一個隨機索引,您可以參考。

list.pop(i) 

這會從列表中刪除指定索引(i)處的項目。

winner.append(x) 

這會將項目(x)添加到獲勝者列表的末尾。如果你想添加項目在一個特定的索引,您可以使用

winner.insert(i,x) 

與我是索引插入在和x是插入的值。

如果您想了解更多信息,一個很好的參考,對數據結構的Python文檔: https://docs.python.org/2/tutorial/datastructures.html

+0

'list.pop'從末尾開始,而不是一個特定的索引 –

+0

@ cricket_007檢出我引用的python文檔,如果未指定索引,則返回最後一個元素,否則返回指定索引處的元素 – PrestonM

+1

I只是指出你沒有在你的回答中提供參數 –

0

這將從名稱列表names中選擇一個隨機項目,並將其添加到另一個列表winner。然後從names中刪除所選的獲勝者。

import random 
winner = [] 
names = ['john','james','michael','david','william'] 
winnerindex = random.randint(0,len(names)-1) 
winner.append(names[winnerindex]) 
del names[winnerindex] 
print winner, names 
+0

問題到底是什麼,你想要我詳細說明一下嗎? @J F – ImportanceOfBeingErnest

+0

是的,所以這段精彩的代碼非常複雜,並且使用了很多鮮爲人知的概念,因此只有少數用戶能夠理解它,而無需頁面冗長的文檔。 – ImportanceOfBeingErnest

-1

只需使用random.randint從指數0到LEN(列表)來獲取列表元素的索引,並將其追加到贏家。

import random 
index = random.randomint(0, len(list)-1) 
winner.append(list[index]) 
del list[index] 
+0

這可能會導致重複添加 –

+0

這並不會從原始列表中刪除該號碼。 – PrestonM

+0

@ cricket_007他從未提及過重複。 – Scriptodude

相關問題