[5张纸牌,在7张纸牌中具有列表理解力,并且具有列表理解能力

问题描述 投票:0回答:1

我正在出于学习目的编写7张扑克手评估脚本。当前正在编程直接检测。

尽管我已经找到了一个可行的解决方案,但它不是'pythonic',因为它会检查是否具有A-5直线,然后在另一条语句中会检查其余的直线。拉梅

我已经创建了可能的顺子列表:

#  01 = Deuce, 13 = Ace
STRAIGHTS = [sorted([13, *range(1,14)][n:n+5]) for n in range(0,10)]

这包括讨厌的A-5直线。

现在我要做的是将我的手与这些列表相交,并查看此交点的长度是否大于5。

如果我这样做:

if len([item for item in hand if item in [13,1,2,3,4]) >= 5

它就像是魅力。但是,如果我将STRAIGHTS列表捕捉到硬编码列表上,它将无法正常工作。为什么会这样?

if len([item for item in hand if item in STRAIGHTS) >= 5

else:这是我在此发布的第一个问题,因此,如果我足够清楚,就可以给我反馈,让我感到舒服,等等

python list list-comprehension poker
1个回答
0
投票

我也假设您的hand也是整数列表

if max([len(set(hand).intersection(set(s))) for s in STRAIGHTS]) >=5
© www.soinside.com 2019 - 2024. All rights reserved.