我想在牌组阵列洗牌后用它下面的牌切换J1的位置。有没有办法在不知道它在数组中的位置的情况下引用J1?谢谢。
import random
deck = ['AC', '2C', '3C', '4C', '5C', '6C', '7C', '8C', '9C', 'TC', 'JC', 'QC', 'KC',
'AS', '2S', '3S', '4S', '5S', '6S', '7S', '8S', '9S', 'TS', 'JS', 'QS', 'KS',
'AH', '2H', '3H', '4H', '5H', '6H', '7H', '8H', '9H', 'TH', 'JH', 'QH', 'KH',
'AD', '2D', '3D', '4D', '5D', '6D', '7D', '8D', '9D', 'TD', 'JD', 'QD', 'KD',
'J1', 'J2']
# shuffle deck
random.shuffle(deck)
#switch Joker1 with card under it
答案 0 :(得分:3)
使用列表中的index()
方法。
请参阅Finding the index of an item given a list containing it in Python:
>>> ["foo","bar","baz"].index('bar')
1
答案 1 :(得分:1)
index(arg)
返回列表中的arg
索引。所以你会这样做:
from random import shuffle
deck = [value + suit for value in range(1, 11) + list ("AJQK") for suit in "HCDS"] + ["J1", "J2"]
shuffle(deck)
idx = deck.index('J1')
deck[idx: idx+2] = deck[idx: idx+2].reverse()