我有一个价格清单,我想从中删除所有空间,例如prices[0] = '2673.00'
prices = ['2 673.00', '53.55', '1 478.00', ... ]
prices = [float(x) for x in prices]
我尝试了各种选择,但没有一个对我有用。
x = str(prices[0]).replace(' ', '') # Got error --> ValueError: could not convert string to float: '2\xa0673.00'
import unicodedata
my_str = unicodedata.normalize("NFD", str(prices[0])) # tried ‘NFC’, ‘NFKC’, ‘NFD’, and ‘NFKD’ as different forms but got same error as above
x = str(prices[0]).replace(u'\xa0', u'') # Got error --> ValueError: could not convert string to float: '2\xa0673.00'
请提出一种可能的方法。谢谢。
最佳答案
如果给出了输入,这肯定可以工作:
import re
regexp = re.compile(r'\s+', re.UNICODE)
prices_norm = [regexp.sub('', p) for p in prices]
但是更好的解决方案是不要在浮标上打印空格。只需在打印前更改
locale
即可:import locale
locale.setlocale(locale.LC_ALL, 'en_US')
关于python - 在Python中使用从字符串中删除\xa0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44002834/