Python-выбрать случайный член в одном массиве и удалить его в другом идентичном массиве - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть 2 массива, один является основным массивом, другой является временным, этот временный массив выбирает 1 случайное число, а затем он должен удалить этот член в основном массиве, поскольку содержимое обоих массивов идентично.как это сделать ?вниз код

import random
spil=['1t','2t','3t','4t','5t','6t','7t','8t','9t','10t','12t','13t','14t'\
           ,'1k','2k','3k','4k','5k','6k','7k','8k','9k','10k','12k','13k','14k'\
           ,'1e','2e','3e','4e','5e','6e','7e','8e','9e','10e','12e','13e','14e'\
           '1p','2p','3p','4p','5p','6p','7p','8p','9p','10p','12p','13p','14p']
print(spil)
izvucena = random.sample(['1t','2t','3t','4t','5t','6t','7t','8t','9t','10t','12t','13t','14t'\
           ,'1k','2k','3k','4k','5k','6k','7k','8k','9k','10k','12k','13k','14k'\
           ,'1e','2e','3e','4e','5e','6e','7e','8e','9e','10e','12e','13e','14e'\
           '1p','2p','3p','4p','5p','6p','7p','8p','9p','10p','12p','13p','14p'],1)
spil.remove(izvucena)
print(spil)

Ответы [ 3 ]

4 голосов
/ 12 сентября 2011

Ваша проблема в том, что random.sample возвращает список, вы действительно хотите сделать что-то вроде этого:

izvucena = random.sample(spil, 1)[0] # grab only element from list returned

Хотя было бы проще использовать random.choice вместо:

izvucena = random.choice(spil)
2 голосов
/ 12 сентября 2011

Проблема в том, что random.sample() возвращает список, а не один элемент, и в этом случае izvucena - это список с одним элементом. Просто замените вторую до последней строки на spil.remove(izvucena[0]), чтобы удалить сам элемент.

1 голос
/ 12 сентября 2011

Если вам не нужен временный список для чего-то другого, на самом деле в нем нет необходимости удалять случайное значение, вы можете просто сделать:

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