Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:如何在一副牌中生成成对的牌_Python - Fatal编程技术网

python:如何在一副牌中生成成对的牌

python:如何在一副牌中生成成对的牌,python,Python,假设我有以下变量: suits = ["h","c", "d", "s"] cards = ["2","3", "4", "5", "6", "7", "8", "9", "t", "j", "q", "k", "a"] deck = [] for suit in suits: for card in cards: deck.append(str(card+suit)) 我想写一个函数,给定一张特定的卡,它可以生成可能的对组合 例如,generatePairs('a'

假设我有以下变量:

suits = ["h","c", "d", "s"]
cards = ["2","3", "4", "5", "6", "7", "8", "9", "t", "j", "q", "k", "a"]
deck = []

for suit in suits:
    for card in cards:
        deck.append(str(card+suit))
我想写一个函数,给定一张特定的卡,它可以生成可能的对组合

例如,
generatePairs('a')
应该返回如下内容:

['ahac','ahad','ahas','acad','acas','adas']


但我不确定如何编写该函数。

您需要类似

In [7]: import itertools

In [8]: c = 'a'

In [9]: ['%s%s%s%s' % (c, s1, c, s2) for (s1, s2) in itertools.combinations(suits, 2)]
Out[9]: ['ahac', 'ahad', 'ahas', 'acad', 'acas', 'adas']
In [5]: deck = []

In [6]: for i in itertools.combinations(suits, 2):
   ...:     for j in cards:
   ...:         deck.append(j+i[0]+j+i[1])
   ...:

In [7]: print deck
['2h2c', '3h3c', '4h4c', '5h5c', '6h6c', '7h7c', '8h8c', '9h9c', 'thtc', 'jhjc', 'qhqc', 'khkc', 'ahac',
', '3h3d', '4h4d', '5h5d', '6h6d', '7h7d', '8h8d', '9h9d', 'thtd', 'jhjd', 'qhqd', 'khkd', 'ahad', '2h2s'
3s', '4h4s', '5h5s', '6h6s', '7h7s', '8h8s', '9h9s', 'thts', 'jhjs', 'qhqs', 'khks', 'ahas', '2c2d', '3c3
4c4d', '5c5d', '6c6d', '7c7d', '8c8d', '9c9d', 'tctd', 'jcjd', 'qcqd', 'kckd', 'acad', '2c2s', '3c3s', '4
 '5c5s', '6c6s', '7c7s', '8c8s', '9c9s', 'tcts', 'jcjs', 'qcqs', 'kcks', 'acas', '2d2s', '3d3s', '4d4s',
', '6d6s', '7d7s', '8d8s', '9d9s', 'tdts', 'jdjs', 'qdqs', 'kdks', 'adas']

使用
itertools.combines
ah neat,你能告诉我在这个例子中我会使用哪些函数吗?
itertools.combines
是一个单一的函数。它是
itertools
模块中的
compositions
功能。