我需要简化此数字列表,但要使其包含一定的字母,如何简化我的列表?
现在我已经列出了该列表,但是我需要一些代码从列表中随机选择一个数字。
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))
答案 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将具有不在列表中的任何值。不确定