如何处理单位换算的问题
这里有一个list当中记录着不同频率字串。有的有单位(单位有Hz, KHz, MHz, GHz, THz五种),有的没有。有的是浮点数,有的又是科学符号表示:
x = ['2.46KHz', '2e+5Hz', '33MHz','-25.03GHz', '+64THz', '533', '-282.0', '1e-2', '-1.1e3']
假设想要比较频率的大小,因此需要先将所有的点都转成浮点数以方便比较。 Python程式该如何写,才能将上面x当中所有的数值都转成浮点数?各位可以先不要看答案,试试看能不能写的出来(答案在下方)。
底下是我的程式码,各位不妨参考看看,如果您有其他更好的答案,也请让我知道。
x = ['2.46KHz', '2e+5Hz', '33MHz','-25.03GHz', '+64THz', '533', '-282.0', '1e-2', '-1.1e3'] def convert(i): scale = {'Hz':1, 'KHz':1e3, 'MHz':1e6, 'GHz':1e9, 'THz':1e12} try: return float(i) except: pass try:&nb