【问题标题】:Convert this string to int list将此字符串转换为 int 列表
【发布时间】:2014-05-23 10:12:22
【问题描述】:

所以我用 Python 编写了这段代码:

def gestionliste():

    liste_usager = input("Veuillez entrer la liste d'entiers:") #this ask the user to enter number(s) of his choice
    liste_usager=liste_usager.split(' ') 
    print(liste_usager)

但是例如,如果用户输入:2 3 4,它会得到一个字符串["2","3","4"]。但是,我想让这个列表成为一个整数列表,如 [2,3,4] 而不是字符串。我该怎么做/转换它?我试过那个地图的东西,但它对我不起作用。

非常感谢!

【问题讨论】:

    标签: python string list integer converter


    【解决方案1】:

    您可以使用list comprehension 将数字转换为整数:

    liste_usager = input("Veuillez entrer la liste d'entiers:")
    liste_usager = [int(n) for n in liste_usager.split(' ')]
    print(liste_usager)
    

    请看下面的演示:

    >>> liste_usager = input(":")
    :2 3 4
    >>> liste_usager = [int(n) for n in liste_usager.split(' ')]
    >>> print(liste_usager)
    [2, 3, 4]
    >>> print(type(liste_usager[0]))
    <class 'int'>
    >>>
    

    编辑:

    列表推导式是单行解法,相当于做:

    liste_usager = input("Veuillez entrer la liste d'entiers:")
    
    lst = []                           # A list to hold the numbers
    for n in liste_usager.split(' '):  # For each item in liste_usager.split(' ')
        n = int(n)                     # Convert it into an integer
        lst.append(n)                  # And add it to lst
    
    liste_usager = lst                 # Reassign liste_usager to lst
    
    print(liste_usager)
    

    【讨论】:

    • @Jon_Computer - x(我决定将其更改为n)将保存liste_usager.split(' ')返回的列表中的每个项目。有关更多详细信息,请参阅我的编辑。
    【解决方案2】:

    您始终可以使用以下内容:

      integers_list=map(int,liste_usager.split())
    

    如果输入为1 2 3 4,它将以[1,2,3,4] 的形式为您提供整数列表。

    【讨论】:

      【解决方案3】:

      使用空格(包括空格字符)作为分隔符。如果用户输入的任何值无法转换为整数(例如逗号、小数和字母),这将失败。

      map(int, liste_usager.split())
      

      你可能会更好:

      numbers = []
      bad_values = []
      for n in liste_usager.split():
          try:
              numbers.append(int(n))
          except ValueError, e:
              bad_values.append(n)
      return numbers
      

      【讨论】:

        猜你喜欢
        • 2016-04-14
        • 1970-01-01
        • 1970-01-01
        • 2018-08-04
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        相关资源
        最近更新 更多