-1
votes

Bubble Tri n'imprime pas la bonne chose

Ce type de tri simple fonctionne. Cependant, disent que A = 45 et B = 23 Comment puis-je l'obtenir d'imprimer B, A au lieu de 24, 45. Merci d'avance. xxx


4 commentaires

Que veux-tu dire? Vous voulez le nom de la variable au lieu de la valeur?


Votre implémentation ne fonctionne pas pour a = 17 , b = 3 , c = 29 , d = 15 et e = 8 . Il imprime ['15', '17', '29', '3', '8'] qui n'est pas correctement triché.


faire my_list = [int (i) pour i dans [A, B, C, D, E]]


@Guy Oui je veux le nom de la variable au lieu de la valeur


4 Réponses :


1
votes

Vous pouvez utiliser une em> compréhension em> pour convertir des variables en numéros code> code>.

my_list = [int(input('Pick a number')) for _ in range(5)]


0 commentaires

2
votes

À condition que les chiffres soient distincts, vous pouvez d'abord prendre une copie de la liste, puis rechercher la position d'origine dans la liste et la convertir en sa lettre correspondante:

initial_list = my_list.copy()
bubble(my_list)
print(my_list)
print ([["a", "b", "c", "d", "e"][initial_list.index(i)] for i in my_list])


0 commentaires

1
votes

Voici comment je le ferais: au lieu de stocker uniquement les chiffres de la liste, stockez une paire qui contient le numéro et le "nom" de cet élément (c'est-à-dire la lettre indiquant sa position dans la liste d'origine) . XXX PRE>

Exemple: P>

Pick a number: 5
Pick a number: 1
Pick a number: 3
Pick a number: 4
Pick a number: 2
['b', 'e', 'c', 'd', 'a']


0 commentaires

0
votes

Si les valeurs sont uniques, vous pouvez créer un dictionnaire contenant des noms de variable comme des clés et des valeurs variables sous forme de valeurs de dictionnaire, comme suit: xxx

ceci doit être effectué avant d'appeler le Bubble () fonction. Lorsque le tri est effectué, faites simplement xxx

ceci produira xxx


4 commentaires

Où est get_key défini?


Je suis vraiment désolé mon mal! J'ai édité le code avec la fonction get_key ()


Si vos valeurs sont uniques, il serait plus logique de faire my_dict = {A: 'A', ...} , puis imprimer (my_dict [i], find = ',' ) Sans le besoin de get_key .


Oui, cela facilite la tâche, une meilleure façon, définitivement!