gpt4 book ai didi

python - 如何从 l=string 中提取 0207 而不是 207?

转载 作者:行者123 更新时间:2023-11-28 16:57:45 26 4
gpt4 key购买 nike

让用户输入为0207a97,使用re从列表中提取207而不是0207

str = input()
l = [int(i) for i in re.findall('\d+',str) if '9' not in i]

if len(l)>0:
print(max(l))

最佳答案

你可以使用

import re

s = "0207a97"
l = [(int(i), i) for i in re.findall('\d+',s) if '9' not in i]
if len(l)>0:
print(max(l, key=lambda x: x[0])[1]) # => 0207

参见 Python demo .即获取第一项为整数值,第二项为匹配字符串值的元组列表,然后只比较第一项得到最大值,打印找到的元组的第2项。

或者,您仍然可以获取 re.findall(r'\d+', s) 结果列表,并使用 key 参数和 最大。将其设置为 int,列表中的值将作为整数进行比较:

l = [i for i in re.findall('\d+',s) if '9' not in i]
if len(l)>0:
print(max(l, key=int))

参见 another Python demo .来自docs :

key specifies a function of one argument that is used to extract a comparison key from each element in iterable (for example, key=str.lower). The default value is None (compare the elements directly).

关于python - 如何从 l=string 中提取 0207 而不是 207?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56806224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com