2017-11-23 2 views
1

私は、文字が現れるまで文字列の数字の平均値を提供する関数を持っています。文字列の逆平均を得るには? - Python

しかし、文字列の先頭から数えるのではなく、この文字列を逆にするのに問題があります。文字列の最後から文字列[-1〜0]の先頭までの平均を計算したかった手紙が表示されます。 3.5関数の結果ではN = "34B22" を用いて、例えば

、((3 + 4)/ 2)が、私は実際には逆を見つけるために探しています(2 + 2)/ 2 = 2

def AverageReverse(n): 
    result = 0 
    count = 0 
    for x in (n): 
     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 

`

+0

を逆にn[::-1]を使用して文字列を反転させます。 –

+0

私はちょうどchar型の文字列をint配列にコピーしたいと思います。そうでない場合は、解析エラーが発生します。次に、int配列の平均値を取得できます。 これはもっと読みやすく、スピードはわかりません。 – washichi

答えて

0

リバースnは平均を計算する前に。文字列を逆にするために、これを実行します -

>>> n 
'34B22' 
>>> n[::-1] 
'22B43' 
0

はちょうど ` が逆に()は、n(逆転)でxに対して`

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 
関連する問題