如何从指定结构的card_list元组列表中获取value值最大的元素?
获取元组列表中value值最大的卡牌元素
嘿,这个需求很容易实现,直接用Python内置的max()函数就行,关键是给它指定一个合适的key参数,让它知道该用哪个值来做比较。
解决方案代码
card_list = [(2, (1, 'S')), (0, (12, 'H')), (1, (5, 'C'))] # 通过lambda表达式提取每个卡牌的value值作为比较依据 max_card = max(card_list, key=lambda card: card[1][0]) print(max_card) # 输出结果: (0, (12, 'H'))
代码说明
max()函数会遍历card_list里的每一张卡牌,key参数的作用是告诉它“用每个卡牌的value值来比大小”。- 这里的
lambda card: card[1][0]拆解一下:每个卡牌元素是(cardindex, (value, suit)),card[1]取到的是(value, suit)这个子元组,再取card[1][0]就拿到了我们要比较的value值。 - 最后
max()会返回整个value值最大的卡牌元素,也就是你示例里的红桃K(0, (12, 'H'))。
验证一下
你的示例里三张卡牌的value分别是1、12、5,显然12最大,对应的卡牌就是索引0的红桃K,和代码运行结果完全一致。
内容的提问来源于stack exchange,提问作者runs
相关产品推荐
相关产品推荐

