擅长:python、mysql、java
<p>这可能无助于解决您的特定问题,但在继续使用Python时,它可能会给您一些想法。</p>
<pre><code>import random
def main():
suits = 'S H D C'.split()
ranks = '2 3 4 5 6 7 8 9 X J Q K A'.split()
deck = [r + s for s in suits for r in ranks]
n_players = 4
hand_size = 5
random.shuffle(deck)
hands = deal(deck, n_players, hand_size)
for h in hands:
print h
def deal(deck, n_players, hand_size):
# A general-purpose dealing function.
# It takes a deck and returns a list of hands.
# Each hand is a list of cards dealt from the top of the deck.
hands = [[] for _ in range(n_players)]
i = -1
for _ in range(hand_size):
for h in hands:
i += 1
h.append(deck[i])
return hands
main()
</code></pre>
<p>关于该示例的一些一般要点:</p>
<ul>
<li><p>这个例子不是从列表中随机选择项目(然后担心后续的选择是否与先前的选择重复),而是简单地洗牌,然后从顶部进行处理。</p></li>
<li><p>处理函数不依赖于任何全局变量。相反,它接收deck和其他参数作为参数,然后返回所需的指针。在某种程度上,您可以组织您的程序,以尽量减少(和本地化)对全局变量的依赖,您通常会更好(有许多原因)。</p></li>
<li><p>该示例使用列表理解,这是一种在Python中创建列表的便捷技术(其中初始化了<code>deck</code>和<code>hands</code>)。</p></li>
</ul>