Как вынуть число из списка и поставить в другой список?(Python) - PullRequest
0 голосов
/ 20 июня 2019

У меня есть некоторый код, который создает список с номерами от 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 ]

2 голосов
/ 20 июня 2019

Нет необходимости повторять, добавлять карты в новый список и удалять карты из исходного (очень неэффективно).
Вы можете просто перетасовать исходный список и взять первые 45 элементов, одновременно меняя исходный список на следующий.остальные.

cards = list(range(1,562)) 
random.shuffle(cards)
selected, cards = cards[:45], cards[45:]
0 голосов
/ 20 июня 2019

Вы можете использовать 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)
0 голосов
/ 20 июня 2019

Вы можете сделать это так:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...