カード(タプル)のリストがあるとしましょう。例えば、特定の要素(カード)を含むタプルの削除
[('H[A]', 'S[2]'), ('H[A]', 'H[3]'), ('H[A]', 'H[4]')....]
H [A]:ハートのエース& S [2]:スペードの2。
カードのリストは、10枚のカードのデッキから取り出し可能な1組のカードのすべての固有の組み合わせを表します。私はすべて私が今やりたい何
def chooseobjects(r):
"""
Finds all unique pairs of cards in a deck of 10 cards.
Mathematically, this is just nCr. i.e., 10C2 is 10 Choose 2.
"""
results = list(itertools.combinations(["H[A]","H[2]","H[3]","H[4]","H[5]",
"S[A]","S[2]","S[3]","S[4]","S[5]",
],r))
return results
def draw(n,cards):
"""
Draw n pair(s) of card from all the unique pairs generated from chooseobjects method.
"""
random.shuffle(cards)
return [cards.pop() for k in range(n)]
cards=chooseobjects(2)
print("These are all the different unique combinations: "'\n',cards)
n=1
ding=draw(n,cards)
print("We randomly drew this pair: "'\n', ding)
print("The remaining unique pairs: "'\n',cards)
(各組み合わせは、カードのペアを持っている)、すべてのユニークな組み合わせを一覧表示し、それらをシャッフルし、それから1つの組み合わせを描くことだったがためであります'H [2]'または 'S [4]'を含むペアを削除/削除します。その後、更新されたリストを返します。
アイデア?お知らせ下さい!どんな助けでも大歓迎です!
EDIT: -ATTEMPT-
[p for p in cards if "H[2]" not in p and "S[4]" not in p]
上記のコードは、H [2]及びS [4]は存在しないタプルのリストを返します。
H [2]とS [4]を明示的に宣言する必要はなく、暗黙的にリスト内包に渡すよりエレガントな方法がありますか?お知らせ下さい!
EDIT 2: -SOLVED-
したがって、溶液は '[4] S' リストJに二つの要素 'H [2]' とを付加することです。
j=[j for item in ding for j in item]
リストjの各要素は文字列型です。つまり、
リストの理解度を作成して、「カード」リストの各タプルを反復処理します。 j [0]とj [1]がタプルに現れない場合は、それらをすべて新しいリストに追加します。
これはどのような試みですか? – TigerhawkT3
私は非常に貧弱な試みをしていましたが、ここには含めませんでした。私はしかし、家に帰るとすぐにその試みを追加します。 – misheekoh
ちょうど私の試みが追加されました!どんな助けも素晴らしいだろう。ありがとう – misheekoh