我有一个非常特殊的问题,我有一副牌。这副牌是元组列表的列表,每个内部列表都是一套带有卡片元组(套装,值)的套牌,从小到大排序(2-Ace)。我想找一副牌中最小的一张。所以基本上我想从每套衣服中拿出第一个物体,然后找出最小的。除了一个极其丑陋的for循环之外,最简单的方法是什么呢?
发布于 2013-04-30 22:39:24
min有一个关键的功能。您可以使用它来获取第一个元素,以将其用作比较:
min(my_list, key=lambda x: x[0])发布于 2013-04-30 22:39:58
min(suit[0] for suit in deck, key=lambda suit,value: value)由于您已经注意到花色已排序,因此可以简单地获取每个花色列表的第一项,以获得该花色的最小值;然后使用min()与指定的key参数比较这些第一个值,以查看每种花色的值部分。
发布于 2013-04-30 23:02:06
让我们假设如下所示创建了卡片组列表:
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]https://stackoverflow.com/questions/16302490
复制相似问题