python - 每个组的最高 x 列表
问题描述
a_list = [
'img_229_152_webp_1x',
'img_229_152_webp_2x',
'img_229_152_webp_3x',
'img_229_152_webp_4x',
'img_229_152_webp_5x',
'img_246_164_webp_1x',
'img_246_164_webp_2x',
'img_246_164_webp_3x',
'img_246_164_webp_4x']
这里我们有两组图像:img_229_152_webp_5x'
和'img_246_164_webp_4x'
。
列表已排序。而对于最后一部分(\d+x
),每组图像都是一个等差数列,不可能有缺失的元素。不可能的情况示例:1x、2x、4x。
你能帮我得到每组最高 x 的列表吗?在这种情况下:[img_229_152_webp_5x', 'img_246_164_webp_4x']
。
解决方案
使用groupby
您可以根据前缀进行分组,然后从每个组中获取最大值:
import itertools
for k, g in itertools.groupby(a_list, key=lambda s: s.rsplit('_', 1)[0]):
print(max(g, key=lambda s: s.rsplit('_', 1)[-1]))
给出:
img_229_152_webp_5x
img_246_164_webp_4x
推荐阅读
- r - 如果我使用“holdout”重采样,如何访问训练集的度量(例如:“classif.acc”或其他度量)?
- swift - forEach 自动布局约束未出现
- python - 具有不同量词的正则表达式捕获组
- python-3.x - 如何在 py 文件中提取函数的文档字符串?
- git - 有人在 Intellij 2020.2 中遇到与 Git 相同的问题吗?
- javascript - 在javascript中将运算符放在alert()中
- reactjs - 反应路由器路由半动态?
- angular - 找不到模块'@angular/cdk/clipboard
- c - pthread_join 后局部变量值不正确
- javascript - Angular - 当表单无效时在提交时显示错误消息