【问题标题】:What is the easiest way to convert list with str into list with int?将带有 str 的列表转换为带有 int 的列表的最简单方法是什么?
【发布时间】:2011-01-26 08:01:49
【问题描述】:

在 Python 中将str 的列表转换为int 的列表的最简单方法是什么? 例如,我们必须将['1', '2', '3'] 转换为[1, 2, 3]。当然,我们可以使用for 循环,但是太简单了。

【问题讨论】:

    标签: python string integer


    【解决方案1】:

    如果它是数组并且已经安装了 numpy.我们也可以使用下面的代码。

    import numpy as np
    
    np.array(['1', '2', '3'],dtype=int)
    

    【讨论】:

      【解决方案2】:

      如果您的字符串不仅仅是数字(即 u''),您可以使用:

      new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()]
      

      【讨论】:

        【解决方案3】:
        [int(i) for i in str_list]
        

        【讨论】:

        • +1 我真的很喜欢map,但是生成器的可读性更强。
        【解决方案4】:

        你也可以使用列表推导:

        new = [int(i) for i in old]
        

        map() 内置函数:

        new = map(int, old)
        

        或者 itertools.imap() 函数,它在某些情况下会提供加速,但在这种情况下只是吐出一个迭代器,您需要将它转换为一个列表(因此它可能需要相同的时间) :

        import itertools as it
        new = list(it.imap(int, old))
        

        【讨论】:

          【解决方案5】:

          Python 2.x:

          map(int, ["1", "2", "3"])
          

          Python 3.x(在 3.x 中,map 返回一个迭代器,而不是 2.x 中的列表):

          list(map(int, ["1", "2", "3"]))
          

          map 文档:2.63.1

          【讨论】:

          • 我的印象是map 通常不受欢迎。它甚至几乎从 Python 3 中删除。
          • @pafcu 我不明白。这种功能对于函数式编程至关重要......
          猜你喜欢
          • 1970-01-01
          • 2013-10-11
          • 1970-01-01
          • 2020-01-05
          • 1970-01-01
          • 2011-05-29
          • 1970-01-01
          • 2011-02-25
          • 1970-01-01
          相关资源
          最近更新 更多