首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python从列表中保留最大整数

Python从列表中保留最大整数
EN

Stack Overflow用户
提问于 2015-01-03 15:54:04
回答 2查看 79关注 0票数 0

我有一个由三个数字组成的整数列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list1 = [505, 504, 503, 502, 207, 206]

如果我们将子集定义为按第一个数字分类的所有值,我希望比较列表中的元素,并保留每个子集中的最大元素。

例如,这里的子集是[505, 504, 503, 502][207, 206]

然后,每个子集的最大值的list将为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
max_values = [505, 207]

我怎样才能直接从list1max_values

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-03 16:09:14

假设组中有一个共同的第一个数字:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list1 = [505,504,503,502,207,206]

from itertools import groupby

for k,v in groupby(list1,key=lambda x: str(x)[0]): # use x // 100 if you only have three digit numbers
    print(max(v))

505
207

groupby使用键str(x)[0]对所有元素进行分组,这是列表中所有数字中的第一个数字,然后我们在每个分组v上调用max。

票数 1
EN

Stack Overflow用户

发布于 2015-01-03 16:12:05

如果我正确地回答了您的问题,并且来自同一组的元素可能分散在输入中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> def get_group(number):
    return number // 100

>>> result = {}
>>> for element in list1:
    group = get_group(element)
    last_max = result.get(group)
    result[group] = element if last_max is None else max(element, last_max)

>>> result.values()
[207, 505]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27760888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文