【发布时间】:2021-11-02 21:37:39
【问题描述】:
使用 Python 3,我有一个表单列表
ls = ["a", "b_0", "b_1", "b_2", "c", "d_0", "d_1"]
我必须找出“b_”之后的最大数字。在这种情况下,所需的输出是 2。
我想出了类似的东西:
import re
p = re.compile("b_(\d+)")
nums = [int(p.match(l).group(1)) for l in ls if p.match(l) is not None]
res_max = max(nums)
但我不喜欢重复两次p.match。
实现这一目标的最 Pythonic 方式是什么?
d_后的最大数不保证小于b_后的最大数
我特别需要找出“b_”前缀后的最大数字。我对任何其他前缀之后的最大数量不感兴趣
【问题讨论】:
-
大多数 Pythonic 方式可能不使用任何模块或导入。
-
列表中的第一个元素
"a"怎么样?还是您的意思是忽略前缀中没有"b_"的任何内容? -
@NielGodfreyPonciano 忽略任何没有
b_作为前缀的东西
标签: python python-3.x list integer max