简化清单

时间:2019-05-19 14:20:02

标签: python

我需要简化此数字列表,但要使其包含一定的字母,如何简化我的列表?

现在我已经列出了该列表,但是我需要一些代码从列表中随机选择一个数字。

carddeck = ['r01', 'r02', 'r03', 'r04', 'r05', 'r06', 'r07', 'r08', 'r09', 'r10', 'b01', 'b02', 'b03', 'b04', 'b05', 'b06', 'b07', 'b08', 'b09', 'b10', 'y01', 'y02', 'y03', 'y04', 'y05', 'y06', 'y07', 'y08','y09', 'y10']
colours =  ['red', 'black', 'yellow']
validOptionsR = ['r01', 'r02', 'r03', 'r04', 'r05', 'r06', 'r07', 'r08', 'r09', 'r10']
validOptionsB = ['b01', 'b02', 'b03', 'b04', 'b05', 'b06', 'b07', 'b08', 'b09', 'b10']
validOptionsY = ['y01', 'y02', 'y03', 'y04', 'y05', 'y06', 'y07', 'y08','y09', 'y10']

我想要一个不使用完整列表的代码,而是选择一个从01到10的随机数字,然后将其与选择的颜色放在一起,例如,黑卡将是b09。这是我其余的代码:

rndClr = random.choice(colours)

if rndClr.find('black'):
        rndClr = 'black'
        print('black')

elif rndClr.find('yellow'):
        rndClr = 'yellow'
        print('yellow')

elif rndClr.find('red'):
        rndClr = 'red'
        print('red')

else:
    print('An Error Has Occurred While Calculating the Card Colour')

def colourPicker():
    colourWind = Tk()
    colourWind.title('Cards')
    colourWind.configure(bg = rndClr)

def playerCardPick():
    if rndClr == 'red' :
         random.shuffle(validOptionsR)
         chosencard = random.choice(validOptionsR)

    elif rndClr == 'black' :
         random.shuffle(validOptionsB)
         chosencard = random.choice(validOptionsB)

    else:
         random.shuffle(validOptionsY)
         chosencard = random.choice(validOptionsY)

    print(str(chosencard))

1 个答案:

答案 0 :(得分:1)

您可以使用

print(rndColor[0] + str(random.randint(1, 11)))

它使用您颜色的第一个字母,并将其添加到1到10之间的一个随机数字前。

此外,if-else-if梯形图可以压缩为

if rndColor not in color:
    print("Error message here")
    exit()

但是我不认为rndColor将具有不在列表中的任何值。不确定