如何获得字符串的反向平均值?-python

如何获得字符串的反向平均值?-python,python,Python,我有一个函数,它提供字符串中数字的平均值,直到出现一个字母 但是,我在反转这个字符串时遇到了问题,因此我不想从字符串的开头开始计数,而是想在字母出现之前计算从字符串末尾到字符串开头的平均值[-1到0] 例如,在函数中使用n=“34B22”会得到3.5((3+4)/2),但我实际上希望找到相反的(2+2)/2=2 `在计算平均值之前反转n。执行以下操作以反转字符串:- >>> n '34B22' >>> n[::-1] '22B43' 在计算平均值之前反转n。

我有一个函数,它提供字符串中数字的平均值,直到出现一个字母

但是,我在反转这个字符串时遇到了问题,因此我不想从字符串的开头开始计数,而是想在字母出现之前计算从字符串末尾到字符串开头的平均值[-1到0]

例如,在函数中使用n=“34B22”会得到3.5((3+4)/2),但我实际上希望找到相反的(2+2)/2=2


`

在计算平均值之前反转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数组的平均值。它更具可读性,我不知道速度。