0.0から39.9までのフロートを文字列に変換したいと思います。10桁がそれぞれ1、2、または3の場合は、L、T、またはYに置き換えます。そして、それが1つにある場合は、Mを追加します。たとえば、22.3はT2.3を返し、8.1はM8.1を返します。それ以外の場合は、フロートを返します。
このコードはもちろん機能しますが、もっと単純な(ワンライナーではないにしても)解決策があるのではないかと思います。コードは次のとおりです。
def specType(SpT):
if 0 <= SpT <= 9.9:
return 'M{}'.format(SpT)
elif 10.0 <= SpT <= 19.9:
return 'L{}'.format(SpT - 10)
elif 20.0 <= SpT <= 29.9:
return 'T{}'.format(SpT - 20)
elif 30.0 <= SpT <= 39.9:
return 'Y{}'.format(SpT - 30)
else:
return SpT
ありがとう!