Random.sample выводит трехмерный массив - PullRequest
1 голос
/ 19 января 2020

Я использую двумерный массив (колоду) и пытаюсь случайным образом заполнить другой список 5 случайными элементами. Хотя я получаю трехмерный список и не могу его исправить

Любая помощь?

import random
suits =['H', 'D', 'S', 'C']
numbers = []
deck = []
for i in range(0, 13):
 numbers.append(i+2)
for i in range(len(suits)):
 for j in range(len(numbers)):
    deck.append([numbers[j], suits[i]])
player1 = []
pc = []
for i in range(5):
 player1.append(random.sample(deck, 1))
 pc.append(random.sample(deck, 1))
 print(player1,pc)

Вывод: [[[14, 'C']], [[11, 'D']], [[6, 'C']], [[14, 'S']], [[13, 'H']]] [[[2, 'C']] , [[6, 'D']], [[11, 'C']], [[6, 'D']], [[9, 'S']]] ... Я просто не могу получить избавиться от созданного дополнительного списка (мне нужно использовать .sample, а не .choice, который раньше работал нормально)

Заранее спасибо,

1 Ответ

1 голос
/ 19 января 2020

В вашем случае random.sample(deck, 1) возвращает двумерный массив, вот что является причиной проблемы, вы можете исправить эти две строки:

player1.append(random.sample(deck, 1)[0])
pc.append(random.sample(deck, 1)[0])

Проверить ошибку

random.sample(deck,1)
[[6, 'D']]
...