我已经查看过此前的答案(python how to remove this n from string or list,remove a list item from a list和python remove whitespace in string),但无法使解决方案有效。
我有一个包含单个元素的列表,如下所示:
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问题?我该如何解决它?
答案 0 :(得分:5)
只需将一个元素从列表中取出并替换为:
print lst[0].replace('\r', '').replace('\n', '')
此处无需将列表本身转换为字符串。
在这种情况下,您还可以将unicode.strip
与.splitlines()
合并以从每行中删除空格,然后重新加入:
print u' '.join([l.strip() for l in lst[0].splitlines() if l.strip()])
打印:
123 Main St., Peoria | 123-456-789
答案 1 :(得分: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