【发布时间】:2014-12-24 07:26:34
【问题描述】:
我有这个 Unicode 列表
list = [u'Hello\n', u'23456\n', u'45678\n',u'85963\n'].
我希望它转换成如下的字符串列表
list1 = ['Hello','23456','45678','85963']
使用最少的代码。
【问题讨论】:
-
不要使用python关键字作为变量名。
我有这个 Unicode 列表
list = [u'Hello\n', u'23456\n', u'45678\n',u'85963\n'].
我希望它转换成如下的字符串列表
list1 = ['Hello','23456','45678','85963']
使用最少的代码。
【问题讨论】:
您可以在列表理解中使用str() 和strip():
>>> my_list = [u'Hello\n', u'23456\n', u'45678\n',u'85963\n']
>>> my_list = [str(i).strip() for i in my_list]
['Hello', '23456', '45678', '85963']
注意:不要使用python内置函数作为变量名!
或者您可以使用将您的 unicode 编码为 ascii by encode('ascii','ignore') :
>>> [i.encode('ascii','ignore').strip() for i in my_list]
['Hello', '23456', '45678', '85963']
【讨论】:
map(lambda x: str(x).strip(), my_list)
只需使用内置的str() 转换string 中的所有数组元素
然后使用str.strip() 删除空格。
In [5]: list(str(i).strip() for i in _list)
Out[5]: ['Hello', '23456', '45678', '85963']
【讨论】:
首先,您不应该使用list 作为变量名。它是 Python 中的保留关键字。
来到你真正的问题,得到你想要的最好和最pythonic的方法是:
xlist = [x.encode().rstrip('\n') for x in list]
print xlist
['Hello', '23456', '45678', '85963']
要了解更多信息,请参阅str.encode() 和string.rstrip() 方法。
【讨论】:
怎么样,
for i in list:
out.append(str(i)[0:-1])
【讨论】: