让用户输入为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))
答案 0 :(得分:3)
您可以使用
var products = [Product]() //use this as dataSource of the tableView
var names = [String]()
var prices = [Double]()
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let product = self.products[indexPath.row]
self.names.append(product.name)
self.prices.append(product.price)
}
请参见Python demo。也就是说,获取元组列表,其中第一项为整数值,第二项为匹配的字符串值,然后仅将第一项进行比较就获得最大值,并打印找到的元组的项2。
或者,您仍然可能只得到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
结果列表,并使用re.findall(r'\d+', s)
的{{1}}参数。将其设置为key
,列表中的值将作为整数进行比较:
max
请参见another Python demo。来自docs:
key 指定一个参数的功能,该参数用于从 iterable 中的每个元素(例如
int
)中提取比较关键字。默认值为l = [i for i in re.findall('\d+',s) if '9' not in i] if len(l)>0: print(max(l, key=int))
(直接比较元素)。
答案 1 :(得分:0)
在屏幕上打印后,您可以添加前导零。您可以阅读以下内容以得到更好的说明:https://stackoverflow.com/a/13499182
答案 2 :(得分:0)
如果我们要在字符串中捕获非九个起始数字,则可能会简单地返回:
import re
print(re.match("^([0-8]+)", "0207a97").group(1))
0207
答案 3 :(得分:-1)
import re
a='0207a97'
a1=re.findall('(\d+)',a)
a1[0] #output - 0207
a1[1] #output - 97
这将为您提供输出列表。您可以根据需要修改列表。