【问题标题】:Join list of strings and remove Unicode prefix加入字符串列表并删除 Unicode 前缀
【发布时间】:2017-03-22 23:51:18
【问题描述】:

我有这个输出

[u'JACK', u'', u'ROSE', u'', u'JANE']

我想从列表的每个元素中删除 unicode 并将它们加入到单个字符串中:

输出:

['JACK ROSE JANE']

【问题讨论】:

标签: python python-2.7 unicode


【解决方案1】:

通过在 filter() 调用中使用 None,它会删除所有虚假元素。已经由@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)

【讨论】:

    【解决方案2】:

    为了简单起见:

    output = [' '.join([str(a) for a in [u'JACK', u'JANE', u'ROSE']])]
    ['JACK JANE ROSE']
    

    在python2.7和python3.5中测试

    【讨论】:

      【解决方案3】:

      以前的答案是完美的。只是向您展示另一种方式:

      result = [str(' '.join(filter(None, [u'JACK', u'', u'ROSE', u'', u'JANE'])))]
      

      这就是在功能范式中如何做到这一点 :) 而且看起来不错吧?

      其实你不需要担心'u'前缀。它只是让您(作为开发人员)知道字符串表示为 unicode。 我添加了“str”来隐藏它(转换为 ascii 字符串),但它并不真正需要。请检查这个答案: What does the 'u' symbol mean in front of string values?

      【讨论】:

      • 对我来说,这很重要,因为我必须将结果复制到原始输入中,所以我不能考虑你'
      【解决方案4】:

      有很多方法可以对其进行编程。我更喜欢这个:

      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'])))]
      

      【讨论】:

      • 我刚刚发布了同样的内容:)
      【解决方案5】:
      >>> in_list = list(filter(lambda x: len(x)>0, [u'JACK', u'', u'ROSE', u'', u'JANE']))
      >>> output = " ".join(in_list)                                                                   
      >>> output
      'JACK ROSE JANE'
      

      【讨论】:

        【解决方案6】:

        在 Python 2 中,使用 str 函数将 unicode 字符串转换为普通字符串:

        >>> unicodeString = u'stuff'
        >>> normalString = str(unicodeString)
        >>> print(unicodeString)
        u'stuff'
        >>> print(normalString)
        'stuff'
        

        【讨论】:

          猜你喜欢
          • 2023-04-05
          • 2019-05-30
          • 2011-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          • 1970-01-01
          相关资源
          最近更新 更多