S'attaquer à quelques problèmes de puzzle dans un samedi soir tranquille (Wooohoo ... pas) et je me débats avec Sort (). Les résultats ne sont pas tout à fait ce que j'attends. Le programme itère à travers chaque combinaison de 100 à 999 et vérifie si le produit est un Palindome. Si c'est le cas, appuyez sur la liste. J'ai besoin de la liste triée: d voici mon programme: quels filets: p> clairement index 0 est plus grand puis 1. Toute idée ce qui se passe? J'ai le sentiment que cela a quelque chose à voir avec des zéros traînants / dirigeants, mais j'ai eu un look rapide et je ne peux pas voir le problème. P> points bonus si vous savez où vient le puzzle: P < / p> p>
8 Réponses :
Vous triez des cordes, pas des chiffres. '101101' <'10201' code> parce que '1' <2 ' code>. Changer list.append (inversé) code> à list.append (int (inversé)) code> et utilisera une fonction de tri différente). P>
Oh mec ... Juste quand je pensais que j'étais diplômé de Noob, à Rookie;) Merci!
Vous avez vos numéros stockés comme des chaînes, donc Python les trite en conséquence. Ainsi: '101x' vient avant '102x' (de la même manière que "ABCD" viendra avant 'AZ'). P>
Non, il trie correctement, juste qu'il trie
Sur un sujet séparé, votre programme pourrait être optimisé. CONSEIL: Générez B> Les chiffres ..
Oui, je sais et je pourrais les compiler plus tard, mais c'est assez rapide pour la tâche à accomplir.
Vous triez des cordes, pas des chiffres. Cordures comparent de gauche à droite. P>
Votre liste contient des chaînes afin de les trier alphabétiquement - essayez de convertir la liste en entiers, puis faites le tri. P>
L'opérateur de comparateur traite votre entrée en tant que chaînes au lieu d'entiers. Dans la Comparsion String 2, la 3ème lettre étant lexicalement supérieure à 1.
inversé = str (mult) [:: - 1]
code> p>
Trier fait son travail. Si vous aviez l'intention de stocker des entiers dans la liste, prenez les conseils de Lukáå. Vous pouvez également dire comment trier comment trier, par exemple en faisant des INTS:
list.sort(key=int)
Pas besoin de convertir en int. MOUT est déjà un INT et comme vous l'avez vérifié, il s'agit d'un palindrome, il ressemblera à la même chose que inversé, alors juste:
list.append(mult)
C'est du projet Euler, je pense.