我如何转换:
somelist = [u'10,1', u'2,47', u'1,6']
为:
somelist = [10.1, 2.47, 1.6]
我已经尝试replace(",", ".")
而没有结果。
答案 0 :(得分:3)
您确实需要替换逗号:
somelist = [float(v.replace(',', '.')) for v in somelist]
演示:
>>> somelist = [u'10,1', u'2,47', u'1,6']
>>> [float(v.replace(',', '.')) for v in somelist]
[10.1, 2.47, 1.6]
答案 1 :(得分:1)
您需要在替换逗号后强制转换该字符串。像这样:
somelist=[float(x.replace(',','.')) for x in somelist]
答案 2 :(得分:0)
由于使用逗号作为小数点字符是世界上许多地区的惯例,因此您可以将此事实与locale
模块一起使用来进行转换:
somelist = [u'10,1', u'2,47', u'1,6']
locale.setlocale(locale.LC_NUMERIC, 'french')
somelist = [locale.atof(str(val)) for val in somelist]
print somelist # -> [10.1, 2.47, 1.6]