私は非常に特殊な問題を抱えています。トランプを持っています。デッキはタプルのリストのリストであり、各内部リストはカード タプル (スーツ、値) を最小から最大 (2 エース) に並べたスーツです。デッキの中で一番小さいカードを見つけたいです。したがって、基本的には、各スーツから最初のオブジェクトを取得し、最小のものを見つけたいと考えています。恐ろしく醜い for ループを除いて、これを行うための最も Pythonic な方法は何ですか?
質問する
1782 次
3 に答える
4
min
キー機能を果たします。これを使用して、比較として使用する最初の要素を取得できます。
min(my_list, key=lambda x: x[0])
于 2013-04-30T14:39:23.923 に答える
0
min(suit[0] for suit in deck, key=lambda suit,value: value)
スーツが並べ替えられていることに気付いたので、各スーツ リストの最初の項目を取得するだけで、そのスーツの最小値を取得できます。min()
次に、指定された引数を使用してこれらの最初の値を比較key
し、それぞれの値部分を調べます。
于 2013-04-30T14:39:57.607 に答える
0
以下のようにデッキリストが作成されたとします。
TheHearts = TheSpades = TheDiamonds = TheClubs = [2,3,4,5,6,7,8,9,10,"j","q","k","a"]
TheDeck = [TheHearts, TheSpades, TheDiamonds, TheClubs]
次の行は、最初のリストの最初のオブジェクトを提供できます。
print TheDeck[0][0]
または、辞書を作成する場合でも、数字の代わりに名前を使用できます。
TheHearts = TheSpades = TheDiamonds = TheClubs = [2,3,4,5,6,7,8,9,10,"j","q","k","a"]
TheDeck = {'TheHearts':TheHearts, 'TheSpades':TheSpades, 'TheDiamonds':TheDiamonds, 'TheClubs':TheClubs}
print TheDeck['TheHearts'][0]
于 2013-04-30T15:02:05.670 に答える