这是我开始时列出的名单

names = ["Alice", "Beatrice", "Amarnae", "Zootrope"]

最后三个词都有四个元音

创建了一个基于元音计数的排序列表.我拿到了下图所示的

mylist = [(3, 'Alice'), (4, 'Amarnae'), (4, 'Beatrice'), (4, 'Zootrope')]

我需要退货/找出第一次出现的最大数量

print(max(mylist))

它会返回

(4, 'Zootrope')

问:我需要返回,因为这是这个名字在原始列表中的第一次出现

(4, 'Beatrice')

我try 了几种不同的方法(包括.mylist.sort(key = lambda x: (x[0], x[1])..但似乎并不奏效.

推荐答案

您的mylist不是在最初保留原始项目订单的情况下创建的,因此出现了问题.

您可以使用这样的列表理解来创建mylist个:

mylist = [(sum(c in 'aeiou' for c in name.lower()), name) for name in names]

这将导致mylist的下列值,保留原始项目顺序:

[(3, 'Alice'), (4, 'Beatrice'), (4, 'Amarnae'), (4, 'Zootrope')]

由于max返回具有最大值的第一个项目,因此您可以简单地将maxkey函数一起使用,该函数只返回元组中的第一个项目进行比较,因为您不希望考虑第二个项目的词典顺序:

max(mylist, key=lambda t: t[0])

它返回:

(4, 'Beatrice')

演示:https://replit.com/@blhsing/SwelteringFlakyDividend

Python相关问答推荐

拆分pandas列并创建包含这些拆分值计数的新列

通过仅导入pandas来在for循环中进行多情节

韦尔福德方差与Numpy方差不同

需要计算60,000个坐标之间的距离

. str.替换pandas.series的方法未按预期工作

海运图:调整行和列标签

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

如何将多进程池声明为变量并将其导入到另一个Python文件

移动条情节旁边的半小提琴情节在海运

什么是最好的方法来切割一个相框到一个面具的第一个实例?

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

Python中的变量每次增加超过1

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

判断solve_ivp中的事件

如何在达到end_time时自动将状态字段从1更改为0

Flash只从html表单中获取一个值

基于多个数组的多个条件将值添加到numpy数组

获取git修订版中每个文件的最后修改时间的最有效方法是什么?

极柱内丢失类型信息""