J'essaie d'inverser une liste à l'aide de l'annexe et de la suppression de la méthode. Mais il y a un problème dans ma méthode de faire cette solution. Peut-être que quelqu'un me donne une meilleure explication
list_in_order = [1,2,3,4,5,6] def reverse(list): r=[] for i in list: print (i) r.append(i) list_in_order.remove(i) return r print(reverse(list_in_order))
4 Réponses :
In [11]: list_in_order = [1,2,3,4,5,6] In [12]: list(reversed(list_in_order)) Out[12]: [6, 5, 4, 3, 2, 1]
Vous ne pouvez pas utiliser list.append code>, comme cela ajoute à la fin de la liste. Ce que vous voulez, c'est ajouter au début de la liste. Pour cette utilisation
list.insert code>. Pour plus de détails, voir le Liste Docs .
>>> [1,2,3,4,5,6][::-1]
[6, 5, 4, 3, 2, 1]
Voulez-vous [6, 5, 4, 3, 2, 1] pour le résultat?
Si oui, il suffit d'utiliser Si vous devez utiliser l'annexe et la suppression, P> list_in_order [:: - 1] code>
list_in_order = [1,2,3,4,5,6]
def reverse_list(target_list):
copied_list = target_list.copy()
r=[]
for i in reversed(target_list):
r.append(i)
copied_list.remove(i)
return r
Je le ferais comme ceci:
list_in_order = [1,2,3,4,5,6] def reverse(list): counter = len(list) for i in range(0,counter/2): print(i) list[i],list[counter-i] = list[counter-i], list[i] return list print(reverse(list_in_order))
Ne retirez pas les éléments de la liste d'origine, construisez simplement une nouvelle. Vous supprimez des éléments de votre liste tout en itérant. Ça ne finit jamais bien.
En outre, ne nommez pas vos variables
list code>.
Vous enfreignez une règle de programmation fondamentale - ne modifiez pas de tableau (liste) que vous êtes itération. De plus, vous êtes itérant sur la liste du début à la fin et d'inverser, vous devez aller dans l'autre sens.