Je prends donc raw_input
comme entrée pour une liste.
x= raw_input()
Où j'entre 1 2 3 4
Comment vais-je le convertir en une liste d'entiers si je saisis uniquement des nombres?
Comme ça:
string_input = raw_input()
input_list = string_input.split() #splits the input string on spaces
# process string elements in the list and make them integers
input_list = [int(a) for a in input_list]
list = map(int,raw_input().split())
Nous utilisons une fonction d'ordre supérieur map
pour obtenir une liste de integers
.
Vous pouvez effectuer les opérations suivantes en utilisant eval
:
lst = raw_input('Enter your list: ')
lst = eval(lst)
print lst
Cela fonctionne comme:
>>> lst = raw_input('Enter your list: ')
Enter your list: [1, 5, 2, 4]
>>> lst = eval(lst)
>>> print lst
[1, 5, 2, 4]
>>>
Voici quelques exemples et brèves explications pour la saisie de listes d'utilisateurs:
Vous pouvez souvent avoir besoin d'un code qui lit les données de la console dans une liste. Vous pouvez saisir un élément de données par ligne et l'ajouter à une liste en boucle. Par exemple, le code suivant lit dix numéros un par ligne dans une liste.
lst1 = [] # Create an empty list
print("Enter 10 Numbers: ")
for i in range(10):
lst1.append(eval(input()))
print(lst1)
Parfois, il est plus pratique de saisir les données sur une seule ligne séparée par des espaces. Vous pouvez utiliser la méthode de fractionnement de la chaîne pour extraire des données d'une ligne d'entrée. Par exemple, le code suivant lit dix nombres séparés par des espaces d'une ligne dans une liste.
# Read numbers as a string from the console
s = input("Enter 10 numbers separated by spaces from one line: ")
items = s.split() # Extract items from the string
lst2 = [eval(x) for x in items] # Convert items to numbers
print(lst2)
L'appel de input()
lit une chaîne. L'utilisation de s.split()
extrait les éléments délimités par des espaces de la chaîne s
et renvoie les éléments dans une liste. La dernière ligne crée une liste de nombres en convertissant les éléments en nombres.