如何从列表中取出数字并放在另一个列表中? (蟒蛇)

时间:2019-06-19 23:19:34

标签: python list

我有一些代码可以创建一个从1到561的数字列表。我想创建一个变量,该变量名为“ ultimate”,其中包含45个值,但是我将其放在该列表中,希望将其从cards_id列表中删除。我怎样才能做到这一点?这是我的通用代码。

def cards_id(x):
    list = []
    for i in range(1,x+1):
        list.append(i)

    return list

cards_id(561)

import random

print (random.choice(cards_id(561)))

from random import shuffle

for i in range(0,45):
    print (random.choice(cards_id(561)))

3 个答案:

答案 0 :(得分:2)

无需迭代,将卡片添加到新列表中,并从原始列表中删除卡片(效率很低)。
您可以将原始列表改组并获取前45个元素,而将原始列表更改为保留其余元素。

cards = list(range(1,562)) 
random.shuffle(cards)
selected, cards = cards[:45], cards[45:]

答案 1 :(得分:0)

您可以使用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)

答案 2 :(得分:-1)

您可以这样做:

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