mapとreduceを使って文字列を浮動小数点に変換する関数を作成します。 (ここでint()はありません)。 はここで、これまでに私のコードです:文字列の文字を削除し、辞書を使用してキーの一致を行います
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[sn] # [s] is the [key]
KeyError: ''
「」辞書にないことを意味します
from functools import reduce
def str2float(s):
def char2number(s):
s = s.replace('.', '')
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] #here i try to get pure numbers
def find_digt(s):
return (len(s) - s.find('.') - 1) if ',' in s else 0
return reduce(lambda x, y: (10 * x + y), (map(char2number, s)))/pow(10, find_digt(s))
print(str2float('1456.124'))
だからこの後、私はエラーを取得します。私がやったいくつかのテストのように:今、
s = s.replace('.', '')
一度そう
s = '1234.456'
s = s.replace(',', '')
print('' in s) #True
質問 '' ''で置き換えると、 ''をクリアしませんでした。文字列に
私はここで何が起こっているのだろうかと思います。それは不変なので文字列内の文字をクリアする正しい方法は何ですか?
あなたが意図的にS'に「」が '確認したが、その後検索しました'.'のインデックスのために?それはあなたが別のセパレーターを持っていたところが残っているようです。しかし、それは確かに奇妙です。 – MSeifert
これは '。'でなければなりません! –