0

我已经查看了以前的答案(python 如何从字符串或列表中删除此 n ,从列表删除列表项python 删除字符串中的空格),但无法使解决方案正常工作。

我有一个包含单个元素的列表,如下所示:

list = [u'\r\n\r\n\r\n            \r\n                \r\n                    \r\n                    123 Main St., Peoria\r\n                \r\n\r\n            \r\n             |\r\n             \r\n                    \r\n                        \r\n                            \r\n                            123-456-789\r\n                        \r\n                    \r\n            \r\n        ']

它有一个地址和一个电话号码,我想要返回的是:

123 Main St., Peoria;123-456-789

我尝试过类似的东西:

str(list).strip(' \r\n\t')

str(list).replace('\r','')

但它们不起作用,所以我在想也许这是一个 unicode 问题?我该如何解决?

4

2 回答 2

5

只需从列表中取出一个元素并在那里替换:

print lst[0].replace('\r', '').replace('\n', '')

此处无需将列表本身转换为字符串。

在这种情况下,您还可以结合unicode.stripa.splitlines()从每一行中删除空格,然后重新加入:

print u' '.join([l.strip() for l in lst[0].splitlines() if l.strip()])

这打印:

123 Main St., Peoria | 123-456-789
于 2012-12-19T09:58:42.780 回答
3
import re

li = [u'\r\n\r\n\r\n \r\n \r\n \r\n 123 Main St., Peoria\r\n \r\n\r\n \r\n |\r\n \r\n \r\n \r\n \r\n 123-456-789\r\n \r\n \r\n \r\n ']
print re.sub(r'\s+', ' ', li[0].replace(' |', ';'))

印刷

123 Main St., Peoria; 123-456-789
于 2012-12-19T09:57:19.023 回答