我有
列表34.00B
65.89B
346M
我需要
34.
65.89
.344
那么,我如何删除最后一个字符,如果是B或M,则将M除以1000.
答案 0 :(得分:6)
我想你只想要这样的东西:
divisors = {'B': 1, 'M': 1000}
def fn(number):
if number[-1] in divisors:
return str(float(number[:-1]) / divisors[number[-1]])
return number
map(fn, ['34.00B', '65.89B', '346M'])
我将返回值转换回字符串,因为你的问题有点不清楚
答案 1 :(得分:2)
不确定我是否清楚地理解了这个问题,下面的代码删除了最后一个字符并返回值的float
(如果最后一个字符为'M'则除以1000)。
lst=[
"34.00B",
"65.89B",
"346M"
]
lst=map(lambda x: float(x[:-1]) if x[-1]=='B' else float(x[:-1])/1000, lst)
print lst