我想将0.0到39.9之间的浮点数转换为字符串.如果分别为1,2或3,则用L,T或Y替换十位数.并附加一个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
Run Code Online (Sandbox Code Playgroud)
谢谢!
DSM*_*DSM 10
怎么样:
def specType(SpT):
return '{}{}'.format('MLTY'[int(SpT//10)], SpT % 10) if 0.0 <= SpT <= 39.9 else SpT
Run Code Online (Sandbox Code Playgroud)
这使
>>> specType(0.0)
'M0.0'
>>> specType(8.1)
'M8.1'
>>> specType(14.5)
'L4.5'
>>> specType(22.3)
'T2.3'
>>> specType(34.7)
'Y4.7'
Run Code Online (Sandbox Code Playgroud)
[正如评论中所指出的,你会想到如何处理可以潜入你的界限的数字 - 我做了一个猜测; 适当修改.]
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |