如何获得字符串的反向平均值?-python
我有一个函数,它提供字符串中数字的平均值,直到出现一个字母 但是,我在反转这个字符串时遇到了问题,因此我不想从字符串的开头开始计数,而是想在字母出现之前计算从字符串末尾到字符串开头的平均值[-1到0] 例如,在函数中使用n=“34B22”会得到3.5((3+4)/2),但我实际上希望找到相反的(2+2)/2=2如何获得字符串的反向平均值?-python,python,Python,我有一个函数,它提供字符串中数字的平均值,直到出现一个字母 但是,我在反转这个字符串时遇到了问题,因此我不想从字符串的开头开始计数,而是想在字母出现之前计算从字符串末尾到字符串开头的平均值[-1到0] 例如,在函数中使用n=“34B22”会得到3.5((3+4)/2),但我实际上希望找到相反的(2+2)/2=2 `在计算平均值之前反转n。执行以下操作以反转字符串:- >>> n '34B22' >>> n[::-1] '22B43' 在计算平均值之前反转n。
`在计算平均值之前反转n。执行以下操作以反转字符串:-
>>> n
'34B22'
>>> n[::-1]
'22B43'
在计算平均值之前反转n。执行以下操作以反转字符串:-
>>> n
'34B22'
>>> n[::-1]
'22B43'
只需使用
n[:-1]
即可反转
def AverageReverse(n):
result = 0
count = 0
for x in (n[::-1]):
if x.isdigit():
result += int(x)
count += 1
if x.islower():
break
if x.isupper():
break
return float(result/count) if result > 0 else 0.0
只需使用
n[:-1]
即可反转
def AverageReverse(n):
result = 0
count = 0
for x in (n[::-1]):
if x.isdigit():
result += int(x)
count += 1
if x.islower():
break
if x.isupper():
break
return float(result/count) if result > 0 else 0.0
for x in(reversed(n))
reversed翻转字符串。我只需将字符串逐字符复制到int数组中,从末尾开始。这样,当解析错误不是数字时,您将得到一个解析错误。然后就可以得到int数组的平均值。它更具可读性,我不知道速度。for x in(reversed(n))
reversed翻转字符串。我只需将字符串逐字符复制到int数组中,从末尾开始。这样,当解析错误不是数字时,您将得到一个解析错误。然后就可以得到int数组的平均值。它更具可读性,我不知道速度。