将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复]

Posted

技术标签:

【中文标题】将项目添加到列表时,python 中的奇怪问题是删除 \\xa0 和其他编码[重复]【英文标题】:Weird problem in python with removing \xa0 and other encoding when adding items to list [duplicate]将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复] 【发布时间】:2021-09-12 10:47:08 【问题描述】:

我有以下代码:

x = "$30.00\xa0USD\u202c"
e = x.strip()
print (e)
group = ["a", e.strip(), "b"]
print (group)

这是它给我的结果:

$30.00 USD‬
['a', '$30.00\xa0USD\u202c', 'b']

我想从添加到列表中的项目中删除“\xa0”,但 .strip() 似乎不起作用,我该如何解决?

【问题讨论】:

strip 不带参数返回删除了前导和尾随空格的字符串副本。 \xa0 不是前导或尾随。也许您想改用replace how-to-remove-xa0-from-string-in-python '\xa0' 实际上是 Latin1 (ISO 8859-1) 中的不间断空格,也是 chr(160)。您应该用空格替换它。 string = string.replace(u'\xa0', u' ') 【参考方案1】:

strip() 去除两边的空格,并且没有空格可以从你传入的字符串中去除。不清楚你希望发生什么或为什么;可能正确的解决方案是首先修复产生该字符串的任何内容。

如果你想放弃\xa0,那么……就这么说吧。

x = x.replace('\xa0', '')

如果您只想从字符串中提取纯可打印的 ASCII,可以尝试使用正则表达式。

import re
x = ' '.join(re.findall('[ -~]+', x))

如果你想剥离\u202c,当然也可以这样做。

x = x.strip('\u202c\u202f')

(我也加入了U+202F,只是为了表明它很容易做到。)

但同样,输入字符串中原始字节和 Unicode 的邪恶混合很可能是您处理早期损坏的迹象。如果你能解决这个问题,也许你将不再需要这些。

【讨论】:

以上是关于将项目添加到列表时,python 中的奇怪问题是删除 \xa0 和其他编码[重复]的主要内容,如果未能解决你的问题,请参考以下文章

<<运算符将字符串添加到列表代理奇怪 - Ruby

如何将项目添加到 PayPal API 中的项目列表

当检查可以是字符串数组中的一个或多个项目时,如何将列表视图项目添加到数组中?

将项添加到列表解析中的列表中

如何将歌曲/目录添加到 Python MPD 播放列表

将类添加到列表 C# 时,索引超出了数组的范围