所以我用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。我可以做/转换它吗?我尝试了那张地图,但它对我不起作用。
非常感谢!
答案 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
格式给出一个整数列表。