簡體   English   中英

將此字符串轉換為int列表

[英]Convert this string to int list

所以我將這段代碼用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]這樣的整數列表,而不是字符串。我該如何做/轉換? 我嘗試了該地圖操作,但對我不起作用。

非常感謝!

您可以使用列表推導將數字轉換為整數:

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)

使用空格(包括空格字符)作為分隔符。 如果用戶輸入的任何值都不能轉換為整數(例如逗號,小數和字母),則將失敗。

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

您可以始終使用以下命令:

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

如果輸入為1 2 3 4 ,它將以[1,2,3,4]形式給出ua整數列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM