生成一个函数,该函数接收一个只包含数字的字符串,也可以是一个空字符串,它返回一个整数值,该整数值是原始字符串偶数位置上所有数字的最大值。你知道吗
如果为空字符串,则函数应返回-1。你知道吗
例如:
max\u even\u pos(“123454321”)返回5,因为5是1,3,5,3,1的最大值,这是原始字符串中偶数位置的数字。你知道吗
# My code
def max_even_pos(st):
if not st:
return -1 ### This line satisfies the empty list condition
for i in range(len(st)): ### Problem I have. Trying to find
## the max integer from even positions
num_list = [i] # assigns elements to the list
if i%2 == 0: # checks if elements are even
return max(num_list) # result
我唯一的问题是让代码在原始字符串的偶数位置找到最大整数。我认为“num\u list=[I]”会导致错误,但我不确定如何更改它以使其正确执行。你知道吗
到目前为止,它为所有情况输出0
@Prune是正确的。也许把下面的几行和你原来的比较会对你下一次有所帮助。。。。你知道吗
当前代码确保
num_list
只有一个元素。当到达第一个偶数索引0
时,停止并返回该索引,而不考虑输入值。您有几个错误需要更正:append
累加值。您当前的代码只保留最后一个。你知道吗i
是位置,而不是值。我相信你想要st[i]
同时也要寻找更好的方法来遍历列表。查看
for
循环或step
为2的列表切片。如果您已经准备好学习另一个级别,请查阅列表理解;您可以将此函数缩减为一行return
。你知道吗相关问题 更多 >
编程相关推荐