关于python:知道项目在数组中的位置

Knowing an item's location in an array

本问题已经有最佳答案,请猛点这里访问。

我想在洗牌后用下面的卡切换j1的位置。有没有一种方法可以在不知道j1在数组中的位置的情况下引用它?谢谢您。

1
2
3
4
5
6
7
8
9
10
11
12
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


使用列表上的index()方法。

请参见在python中查找给定包含该项的列表的项的索引:

1
2
>>> ["foo","bar","baz"].index('bar')
1


index(arg)返回列表中arg的索引。所以你应该这样做:

1
2
3
4
5
6
7
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()