将此字符串转换为int列表

时间:2014-04-09 23:05:40

标签: python string list integer converter

所以我用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]这样的整数列表,而不是string。我可以做/转换它吗?我尝试了那张地图,但它对我不起作用。

非常感谢!

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可以随时使用以下内容:

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

如果输入为[1,2,3,4],它会以1 2 3 4格式给出一个整数列表。