【问题标题】:converting list of string to list of integer [duplicate]将字符串列表转换为整数列表[重复]
【发布时间】:2012-05-08 06:27:25
【问题描述】:

如何将空格分隔的整数输入转换为整数列表?

示例输入:

list1 = list(input("Enter the unfriendly numbers: "))

转换示例:

['1', '2', '3', '4', '5']  to  [1, 2, 3, 4, 5]

【问题讨论】:

    标签: python list input integer


    【解决方案1】:

    map() 是你的朋友,它将作为第一个参数给出的函数应用于列表中的所有项目。

    map(int, yourlist) 
    

    由于它映射每个可迭代对象,您甚至可以这样做:

    map(int, input("Enter the unfriendly numbers: "))
    

    which(在 python3.x 中)返回一个地图对象,可以将其转换为列表。 我假设您使用的是 python3,因为您使用的是 input,而不是 raw_input

    【讨论】:

    • +1 但你的意思是map(int,yourlist) 吗?
    • 你的意思是map(int, input().split()),还是py3k自动将空格分隔的输入转换成列表?
    • 不,我假设输入的数字没有空格,正如所提供的示例所示。事实上,我并没有将此作为解决方案发布,我只是想指出 map() 的第二个参数不必是列表,任何可迭代的作品。
    【解决方案2】:

    一种方法是使用列表推导:

    intlist = [int(x) for x in stringlist]
    

    【讨论】:

    • +1, [int(x) for x in input().split()] 以符合 OP 的规范。
    【解决方案3】:

    这行得通:

    nums = [int(x) for x in intstringlist]
    

    【讨论】:

      【解决方案4】:

      你可以试试:

      x = [int(n) for n in x]
      

      【讨论】:

      • 这不起作用。 int 不是字符串方法。
      • 对不起,我编辑了它......这实际上是我的意思:)
      • 没错,但我一般不会像这样重复使用x
      • 你能举个例子吗?
      【解决方案5】:

      假设有一个名为 list_of_strings 的字符串列表,输出是一个名为 list_of_int 的整数列表。 map 函数是可用于此操作的内置 python 函数。

      '''Python 2.7'''
      list_of_strings = ['11','12','13']
      list_of_int = map(int,list_of_strings)
      print list_of_int 
      

      【讨论】:

        【解决方案6】:
         l=['1','2','3','4','5']
        
        for i in range(0,len(l)):
            l[i]=int(l[i])
        

        【讨论】:

          【解决方案7】:

          只是好奇你得到“1”、“2”、“3”、“4”而不是 1、2、3、4 的方式。无论如何。

          >>> list1 = list(input("Enter the unfriendly numbers: "))
          Enter the unfriendly numbers: 1, 2, 3, 4
          >>> list1 = list(input("Enter the unfriendly numbers: "))
          Enter the unfriendly numbers: [1, 2, 3, 4]
          >>> list1
          [1, 2, 3, 4]
          >>> list1 = list(input("Enter the unfriendly numbers: "))
          Enter the unfriendly numbers: '1234'
          >>> list1 = list(input("Enter the unfriendly numbers: ")) 
          Enter the unfriendly numbers: '1', '2', '3', '4'
          >>> list1
          ['1', '2', '3', '4']
          

          好的,一些代码

          >>> list1 = input("Enter the unfriendly numbers: ")
          Enter the unfriendly numbers: map(int, ['1', '2', '3', '4'])
          >>> list1
          [1, 2, 3, 4]
          

          【讨论】:

            猜你喜欢
            • 2021-07-26
            • 2015-07-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-10-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多