【问题标题】:Knowing an item's location in an array [duplicate]知道一个项目在数组中的位置[重复]
【发布时间】:2014-02-22 05:34:25
【问题描述】:

我想在牌组洗牌后将 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

【问题讨论】:

    标签: python arrays shuffle


    【解决方案1】:

    在列表中使用index() 方法。

    Finding the index of an item given a list containing it in Python:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2020-03-08
        • 1970-01-01
        • 2021-10-03
        • 2020-03-26
        • 2023-01-05
        相关资源
        最近更新 更多