【问题标题】:Python: List to integersPython:整数列表
【发布时间】:2010-12-26 22:44:25
【问题描述】:

我已读入一个文件并将每一行转换为一个列表。列表示例如下所示:

['15', '2', '0'], ['63', '3', '445', '456' '0'], ['23', '4', '0' ]

我想从每个列表中检索第一个数字并将其转换为整数,因此当我执行类型函数时,即

type(x) 
<type 'int'> is returned

当我打印 x 时,整数是单独打印的,而不是连接的。即,如果我从上面的列表中取出前 3 个数字,则数字不会打印为:

156323

【问题讨论】:

  • 您的问题对于您希望输出的方式有点模糊。请说明。
  • 如果您告诉我们您希望如何打印数字,而不是您想要的(因为我假设有无限的数字其中)。

标签: python list integer


【解决方案1】:

转换你的整数:

my_ints = [int(l[0]) for l in your_list]

打印出来:

print "".join(map(str, my_ints))

【讨论】:

    【解决方案2】:

    如果你想要一个包含每个列表的第一个数字的列表,[int(L[0]) for L in lines](假设列表的列表称为lines);如果您想要每个列表的前 两个 数字(很难从您的问题中看出),[int(s) for L in lines for s in L[:2]];等等。

    如果您不想要这些数字的列表,而只是对它们进行一次迭代,则可以使用生成器表达式,即:

    for number in (int(s) for L in lines for s in L[:2]):
      ...do something with number...
    

    或等效的嵌套循环方法,例如:

    for L in lines:
      for s in L[:2]:
        number = int(s)
        ...do something with number...
    

    【讨论】:

      【解决方案3】:
      # Converts all items in all lists to integers.
      ls = [map(int, x) for x in the_first_list]
      

      或者如果你只想要前两项:

      ls = [map(int, x[:2]) for x in the_first_list]
      

      在 python 3.x 中,您还必须将地图包装在列表构造函数中,就像这样

      ls = [list(map(int, x[:2])) ...
      

      【讨论】:

      • +1,但不确定内部列表理解是否是 OP 正在寻找的。也许 [map(int, x) for x in the_first_list] ?
      • 这会将所有项目转换为整数并保持列表不变,他只想要每个列表的第一个数字。
      • 我稍作改动,将其转换为列表。
      • 而不是说 the_first_list 不应该这样阅读列表[0]
      • 并非如此。巧合的是,这将只转换第一个列表,输出将是:[[1, 5], [2], [0]]
      【解决方案4】:

      如果我正确理解了您的问题,那就是[int x[0] for x in list_of_lists]

      【讨论】:

        【解决方案5】:
        lines = [['15', '2', '0'], ['63', '3', '445', '456' '0'], ['23', '4', '0']]
        first_values_as_ints = [int(line[0]) for line in lines]
        for x in first_values_as_ints:
            print x,
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多