Python 3.x 从python数组切片偶数/奇数索引的最佳方法?

Python 3.x 从python数组切片偶数/奇数索引的最佳方法?,python-3.x,Python 3.x,我正在尝试创建一个纸牌游戏程序 到目前为止,我已经创建了一个名为“甲板”的阵列,它由30张编号为1到30的卡片组成,每张卡片都被分配了一种颜色“红色”、“黑色”或“黄色” 我的任务是让第一个玩家连续拿牌组的第一张牌,让第二个玩家连续拿牌组的第二张牌,直到阵列“牌组”中没有剩余的牌为止 所以我认为最好的方法是player1从牌组中获取所有偶数的索引(0,2,4,6…28),player2从牌组中获取所有奇数的索引(1,3,5,7…29) 最好的方法是什么 我曾尝试使用过滤器内置方法来检索偶数或奇数

我正在尝试创建一个纸牌游戏程序

到目前为止,我已经创建了一个名为“甲板”的阵列,它由30张编号为1到30的卡片组成,每张卡片都被分配了一种颜色“红色”、“黑色”或“黄色”

我的任务是让第一个玩家连续拿牌组的第一张牌,让第二个玩家连续拿牌组的第二张牌,直到阵列“牌组”中没有剩余的牌为止

所以我认为最好的方法是player1从牌组中获取所有偶数的索引(0,2,4,6…28),player2从牌组中获取所有奇数的索引(1,3,5,7…29)

最好的方法是什么

我曾尝试使用过滤器内置方法来检索偶数或奇数索引,但我觉得这是不正确的

随机导入
颜色=[‘红色’、‘黑色’、‘黄色’]
deck=[(random.randint(1,31),random.choice(颜色))表示范围内(30)]
牌组=随机。洗牌(牌组)
印刷品(甲板)
def Player1_卡(牌组):
Player1_Cards=列表(过滤器(牌组[::2]))
返回玩家1_卡
def Player2_卡(牌组):
Player2_Cards=列表(过滤器(牌组[::1]))
返回玩家2_卡
打印(玩家1_卡(套牌))
打印(玩家2_卡(套牌))
#输出为“'NoneType'对象不可下标”

在我看来,将15个随机非代表性数字从1到30分配给两个玩家的最佳方法是-

import random 

def Player1_Cards(deck):
    return deck[:16]

def Player2_Cards(deck):
    return deck[16:]


colours = ['RED','BLACK','YELLOW']
deck = list(range(1,31))
random.shuffle(deck)
print('Randomized Deck:\n',deck)

print('Player 1:',Player1_Cards(deck))
print('Player 2:',Player2_Cards(deck))

deck[::2]
deck[1::2]
已经是您要查找的列表,您不需要使用
filter
random。shuffle(deck)不会返回任何内容。因此,它不能分配给任何变量。random.shuffle()实际上会更改传递给它的列表的内容。如果您认为此答案很有帮助并且工作正常,请将其标记为已回答,以便其他人不会对是否必须回答感到困惑。:)