私は初心者からPythonの正規表現です。私は必要なものを達成しましたが、経験が不足しているので本当に醜いです。上記配列の収量ように、浮動小数点数の配列にPython regex配列を浮動小数点配列に変換する
notes = ["10.0% higher", "5.0% lower", "Same as", "21.2% lower"]
:私の目標は、フォームの文字列の配列を変換することで、以下の
changes = [10.0,-5.0,0,-21.2]
コードはそれを達成するが、実際の繰り返しで、悪いスタイル。どうすればそれを最適化できますか? (そんなにない小さめの入力に対して、大きな入力に関連する)
changes = []
for note in notes:
m = re.search(r"(?:(\d+\.\d+\%\shigher)|(\d+\.\d+\%\slower)|(Same\sas))", note)
if m:
if m.groups(0):
if m.groups(0)[0]:
changes += [float(re.match(r"(\d+\.\d+)", m.groups(0)[0]).groups(0)[0])]
elif m.groups(0)[1]:
changes += [-float(re.match(r"(\d+\.\d+)", m.groups(0)[1]).groups(0)[0])]
else:
changes += [0.0]
print changes
CodeReview.SEに実際に投稿する必要があります。また、if if m:if m.groups(0): 'を1つの' if m and m.groups (0): ' – Druzion