我有一个价格清单,我想从中删除所有空间,例如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/

10-15 22:58