在列表(字符串、数字)python中查找最大的

2024-05-23 20:49:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下格式的清单:

[('car  crash  killed', 95), ('car  accident  crash', 86), ('disaster  police  car', 45)]

我想提取最大数的字符串/句子并将其打印到文本文件中。在这种情况下,输出将是:

^{pr2}$

如果有两个或更多的字符串/句子具有相同的最大数,我想提取所有他们。为了示例:

[('car  crash  killed', 95), ('car  accident  crash', 95), ('disaster  police  car', 45)]

输出:

car crash killed
car accident crash

如何提取?在


Tags: 字符串示例格式情况crashcar句子文本文件
3条回答
from collections import Counter

dictionary = dict([('car  crash  killed', 95), ('car  accident  crash', 95), ('disaster  police  car', 45)])
counter = Counter(dictionary)
max_value = counter.most_common(1)[0][1]
print(max_value)

result = list(string for string, count in counter.most_common() if count == max_value)
print(result)

给出具有重复值(96)的列表:

data = [('car  crash  killed', 95),
        ('car  accident  crash', 86),
        ('disaster  police  car', 45),
        ('road', 95)]

然后按值对其排序并选择最高的值:

^{pr2}$

这可以通过列表理解来简化:

data = sorted([(y, x) for x, y in data], reverse=True)

highest = data[0][0]
out = [x for y,x in data if y==highest]
print(out)

['road', 'car  crash  killed']

使用max获取值最大的项:

lst = [('car  crash  killed', 95), ('car  accident  crash', 86), ('disaster  police  car', 45)]

print(max(lst, key=lambda x: x[1])[0])
# car  crash  killed

现在,要返回所有max-value项目,基本上应用相同的逻辑。获取max_value并使用如下列表理解返回带有max_value的所有项:

^{pr2}$

相关问题 更多 >