【问题标题】:Replace for loop with list comprehension用列表理解替换 for 循环
【发布时间】:2012-02-16 10:00:23
【问题描述】:
string = ""
for e in list:
    string += e

如何将这个 for 循环表示为列表推导式以便输出字符串?

【问题讨论】:

    标签: python string list python-3.x list-comprehension


    【解决方案1】:

    你想要的首选成语是:

    string = ''.join(l)
    

    解释:join() 是一个字符串方法,它获取一个 iterable 并返回一个 string,其中所有可迭代的元素由调用它的字符串分隔。因此,例如,', '.join(['a', 'b']) 将简单地返回字符串 'a, b'。由于列表是可迭代的,我们可以将它们传递给 join,并使用分隔符 ''(空字符串)来连接列表中的所有项目。

    注意:由于list 是 Python 中列表的内置类型名称,因此最好不要通过命名变量“列表”来掩盖它。因此,我将示例中的列表命名为l。

    【讨论】:

      【解决方案2】:

      列表推导返回列表而不是字符串。使用join()

      string = "".join(lst)
      

      更全面的了解join方法,请看:http://docs.python.org/library/stdtypes.html#str.join

      另外,请注意不要将变量命名为list,因为它是可识别的类型,并且会导致麻烦。

      【讨论】:

        【解决方案3】:

        不是列表理解,但仍然很短,希望有效。

        string = ''
        list = ['a',' f' , 'f' ,'daf','fd']
        
        x =reduce(lambda x,y: x + y, list, string)
        print x
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-29
          相关资源
          最近更新 更多