web-dev-qa-db-fra.com

Comment raw_input (). Strip (). Split () en Python fonctionne-t-il dans ce code?

J'espère que la communauté pourra mieux l'expliquer. Ci-dessous, l'objectif, j'essaie de donner un sens à ce code étant donné l'objectif. 

Objectif: initialiser votre liste et lire la valeur de suivie par des lignes de commandes où chaque commande sera du type indiqué ci-dessus. Parcourez chaque commande dans l'ordre et effectuez l'opération correspondante sur votre liste.

Exemple de saisie:

12
insert 0 5
insert 1 10
etc.

Exemple de sortie: 

[5, 10]
etc.

La première ligne contient un entier, n, indiquant le nombre de commandes. Chaque ligne des lignes suivantes contient l’une des commandes décrites ci-dessus.

Code: 

n = int(raw_input().strip())

List = []
for number in range(n):
args = raw_input().strip().split(" ")
if args[0] == "append":
    List.append(int(args[1]))
Elif args[0] == "insert":
    List.insert(int(args[1]), int(args[2]))

Voilà donc mon interprétation de la variable "args". Vous prenez l'entrée brute de l'utilisateur, puis supprimez les espaces blancs de l'entrée brute. Une fois que cela est supprimé, la fonction split met la chaîne dans une liste. 

Si mon entrée brute était "insert 0 5", strip () ne le transformerait-il pas en "insert05"?

4
CTLearn

En python, vous utilisez une méthode split(delimiter) sur une chaîne afin d'obtenir une liste basée sur le délimiteur que vous avez spécifié (par défaut, le caractère espace) et la méthode strip() supprime les espaces blancs à la fin et au début d'une chaîne

Donc, étape par étape, les opérations sont les suivantes:

raw_input()          #' insert 0 5     '
raw_input().strip()  #'insert 0 5'
raw_input().strip().split()  #['insert', '0', '5']

vous pouvez utiliser split(';') par exemple si vous souhaitez convertir des chaînes délimitées par des points-virgules 'insert; 0; 5'

9
soloidx

Non, ce serait .remove(" "), .strip() supprime simplement les espaces au début et à la fin de la chaîne.

0
Elliot Roberts