首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列表中第一个对象中的Python,min

列表中第一个对象中的Python,min
EN

Stack Overflow用户
提问于 2013-04-30 22:34:50
回答 3查看 1.7K关注 0票数 1

我有一个非常特殊的问题,我有一副牌。这副牌是元组列表的列表,每个内部列表都是一套带有卡片元组(套装,值)的套牌,从小到大排序(2-Ace)。我想找一副牌中最小的一张。所以基本上我想从每套衣服中拿出第一个物体,然后找出最小的。除了一个极其丑陋的for循环之外,最简单的方法是什么呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-30 22:39:24

min有一个关键的功能。您可以使用它来获取第一个元素,以将其用作比较:

代码语言:javascript
复制
min(my_list, key=lambda x: x[0])
票数 4
EN

Stack Overflow用户

发布于 2013-04-30 22:39:58

代码语言:javascript
复制
min(suit[0] for suit in deck, key=lambda suit,value: value)

由于您已经注意到花色已排序,因此可以简单地获取每个花色列表的第一项,以获得该花色的最小值;然后使用min()与指定的key参数比较这些第一个值,以查看每种花色的值部分。

票数 0
EN

Stack Overflow用户

发布于 2013-04-30 23:02:06

让我们假设如下所示创建了卡片组列表:

代码语言:javascript
复制
TheHearts = TheSpades = TheDiamonds = TheClubs = [2,3,4,5,6,7,8,9,10,"j","q","k","a"]
TheDeck = [TheHearts, TheSpades, TheDiamonds, TheClubs]

下面这行代码可以提供第一个列表中的第一个对象:

代码语言:javascript
复制
print TheDeck[0][0]

或者,即使你做了一本字典,你也可以用名字代替数字:

代码语言:javascript
复制
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]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16302490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档