3 回答

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
無(wú)需迭代,將卡片附加到新列表并從原始列表中刪除卡片(非常低效)。
您可以只打亂原始列表并獲取前 45 個(gè)元素,同時(shí)更改原始列表以獲取剩余的元素。
cards = list(range(1,562))
random.shuffle(cards)
selected, cards = cards[:45], cards[45:]

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用numpy:
import numpy as np
cards_id = np.arange(561) + 1
ultimate = np.random.choice(cards_id, 45)
cards_id = np.setdiff1d(cards_id, ultimate)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
你可以這樣做:
def cards_id(x):
lis = []
for i in range(1,x+1):
lis.append(i)
return lis
import random
cards_id_list=cards_id(561)
ultimate=[]
for i in range(0,45):
a=random.choice(cards_id_list)#random element from the list
ultimate.append(a)
cards_id_list.remove(a)#remove from the list here
添加回答
舉報(bào)