简化Lis

2024-10-06 07:52:23 发布

您现在位置: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))

Tags: 代码列表randomredfindblackprintchoice
1条回答
网友
1楼 · 发布于 2024-10-06 07:52:23

你可以这样做

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

它取颜色的第一个字母,并将其前置为1到10之间的随机数

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

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

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

相关问题 更多 >