给定一个包含几个单词和数字的句子.找出其中不包含9的最大数字



给定一个包含多个单词和数字的句子。找出其中不包含9的最大数字。

class Solution:
def ExtractNumber(self,S):
#ode here
n=[int(i) for i in S.split() if i.isdigit()]
for i in n:
n1=i
while(i>0):
if(i%10 == 9):
n.remove(n1)
break
i=i//10
m=n[0]
for k in n:
if k>m:
m=k
return m

这个函数说这样的错误是怎么回事

Runtime Error:
Runtime ErrorTraceback (most recent call last):
File "/home/201740db89118db90839eac44cdd8c21.py", line 31, in <module>
ans=ob.ExtractNumber(S)
File "/home/201740db89118db90839eac44cdd8c21.py", line 17, in ExtractNumber
m=n[0]
IndexError: list index out of range

您试图在不检查列表中是否还有元素的情况下从列表中获取项目。

另一种方法是使用最大

def ExtractNumber(self,S):
#ode here
n=[int(i) for i in S.split() if i.isdigit()]
return max(n, key=lambda x: x if "9" not in str(x) else -1)

def ExtractNumber(self,S):
return max(int(i) for i in S.split() if i.isdigit() and "9" not in i)

最新更新