知道项目在数组中的位置

时间:2014-01-30 04:09:09

标签: python arrays shuffle

我想在牌组阵列洗牌后用它下面的牌切换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

2 个答案:

答案 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()