Python 连接字符串列表并删除Unicode前缀
我有这个输出Python 连接字符串列表并删除Unicode前缀,python,python-2.7,unicode,Python,Python 2.7,Unicode,我有这个输出 [u'JACK', u'', u'ROSE', u'', u'JANE'] 我想从列表的每个元素中删除unicode,并将它们连接到一个字符串中,如下所示: 输出: ['JACK ROSE JANE'] 在Python 2中,使用str函数将unicode字符串转换为普通字符串: >>> unicodeString = u'stuff' >>> normalString = str(unicodeString) >>> pr
[u'JACK', u'', u'ROSE', u'', u'JANE']
我想从列表的每个元素中删除unicode,并将它们连接到一个字符串中,如下所示:
输出:
['JACK ROSE JANE']
在Python 2中,使用
str
函数将unicode字符串转换为普通字符串:
>>> unicodeString = u'stuff'
>>> normalString = str(unicodeString)
>>> print(unicodeString)
u'stuff'
>>> print(normalString)
'stuff'
以前的答案是完美的。只是想告诉你另一种方式:
result = [str(' '.join(filter(None, [u'JACK', u'', u'ROSE', u'', u'JANE'])))]
这就是在功能范式中如何做到的:)
看起来不错,是吗
实际上,你不需要担心“u”前缀。它只是让您(作为开发人员)知道字符串是用unicode表示的。
我添加了“str”来隐藏它(转换为ascii字符串),但实际上并不需要。请检查以下答案:
编程的方法有很多种。我喜欢这样:
output = str(" ".join(filter(None,[u'JACK', u'', u'ROSE', u'', u'JANE'])))
如果您需要列表:
output = [str(" ".join(filter(None,[u'JACK', u'', u'ROSE', u'', u'JANE'])))]
为了简单起见:
output = [' '.join([str(a) for a in [u'JACK', u'JANE', u'ROSE']])]
['JACK JANE ROSE']
在python2.7和python3.5中测试,通过在filter()调用中使用None,它删除了所有falsy元素。已经是@Andrey了
a = [u'JACK', u'', u'ROSE', u'', u'JANE']
c = [str(' '.join(filter(None, a)))]
print (c)
或者迭代并仅获取True项,这里的反参数是字符串运算符的可能性,o.lower,o.upper
b = [' '.join([o for o in a if o])]
print (b)
你为什么要摆脱美国?到目前为止,你尝试过什么?可能重复的注意“u”不是一个字符,它只是描述了“火花”。所以,不要看到<代码>的东西,你可以看到<>代码> u'Studio,因为字符串是Unicode字符串,但是它的内容仍然是“代码>文件,对于我来说,这是很重要的,因为我必须把结果复制到原始输入中,所以我不能认为U'我只是张贴了相同的内容:)
b = [' '.join([o for o in a if o])]
print (b)