【问题标题】:Random.sample outputs a 3 dimensional arrayRandom.sample 输出一个 3 维数组
【发布时间】:2020-05-05 13:15:14
【问题描述】:

我正在使用一个二维数组(一个卡片组),我正在尝试用 random.sample 填充另一个列表,其中包含 5 个随机项目。虽然,我得到了一个 3 维列表,但我无法修复它

有什么帮助吗?

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 以前效果很好)

提前致谢,

【问题讨论】:

    标签: python arrays list random


    【解决方案1】:

    在您的情况下,random.sample(deck, 1) 返回一个二维数组,这就是导致问题的原因,您可以修复以下两行:

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

    检查错误

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

    【讨论】:

    • 是的,你是对的.. 喝了几杯酒后我熬了一夜,决定在这个时候完成一个大学项目,我只是懒得去寻找解决方案。非常感谢你!
    • 别担心,继续。投票并接受它有帮助的解决方案:)
    猜你喜欢
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2011-01-19
    相关资源
    最近更新 更多