Notez que sorted(a)cela renverra une liste triée, donc pour les comparaisons de chaînes, vous n'avez pas besoin de le faire join()(voir les réponses de askewchan ci-dessous).
Skippy le Grand Gourou
Notez que cela ''.join(sorted(a, reverse=True, key=str.lower))peut être utilisé pour effectuer un tri inversé insensible à la casse. Cela pourrait être pratique.
Superdooperhero
89
>>> a ='ZENOVW'>>> b = sorted(a)>>>print b
['E','N','O','V','W','Z']
sortedrenvoie une liste, vous pouvez donc en faire à nouveau une chaîne en utilisant join:
>>> c =''.join(b)
qui joint les éléments de bavec une chaîne vide ''entre chaque élément.
Hé, cette première solution était un peu utile pour un devoir dans lequel je devais trouver une lettre en utilisant la bissection. Oui, je connais déjà la classe de chaînes et la méthode find (), mais cela va à l'encontre du but de l'exercice;)
runlevel0
9
Vous pouvez utiliser réduire
>>> a ='ZENOVW'>>> reduce(lambda x,y: x+y, sorted(a))'ENOVWZ'
le code peut être utilisé pour trier la chaîne par ordre alphabétique sans utiliser aucune fonction intégrée de python
k = input ("Entrez à nouveau une chaîne")
li =[]
x = len(k)for i in range (0,x):
li.append(k[i])print("List is : ",li)for i in range(0,x):for j in range(0,x):if li[i]<li[j]:
temp = li[i]
li[i]=li[j]
li[j]=temp
j=""for i in range(0,x):
j = j+li[i]print("After sorting String is : ",j)
Bravo pour votre première réponse. Considérez simplement une chaîne de 1 million de caractères, votre commande tuple () créera une énorme liste d'options accumulées qui utilise inutilement une grande quantité de mémoire.
tda le
D'accord. Donc, pour améliorer la complexité de l'espace, l'idée est de travailler avec l'itérable lui-même, instaed de le convertir en une structure de données. Agréable. Merci.
sorted(a)
cela renverra une liste triée, donc pour les comparaisons de chaînes, vous n'avez pas besoin de le fairejoin()
(voir les réponses de askewchan ci-dessous).''.join(sorted(a, reverse=True, key=str.lower))
peut être utilisé pour effectuer un tri inversé insensible à la casse. Cela pourrait être pratique.sorted
renvoie une liste, vous pouvez donc en faire à nouveau une chaîne en utilisantjoin
:qui joint les éléments de
b
avec une chaîne vide''
entre chaque élément.la source
La solution Sorted () peut vous donner des résultats inattendus avec d'autres chaînes.
Liste des autres solutions:
Trier les lettres et les différencier:
Trier les lettres et les différencier tout en gardant les majuscules:
Trier les lettres et conserver les doublons:
Si vous voulez vous débarrasser de l'espace dans le résultat, ajoutez la fonction strip () dans l'un de ces cas mentionnés:
la source
Vous pouvez utiliser réduire
la source
La fonction Python
sorted
renvoie un résultat basé sur ASCII pour la chaîne.INCORRECT : dans l'exemple ci-dessous,
e
etd
est en retardH
et enW
raison de sa valeur ASCII.CORRECT : pour écrire la chaîne triée sans changer la casse de la lettre. Utilisez le code:
Si vous souhaitez supprimer tous les signes de ponctuation et les chiffres. Utilisez le code:
la source
le code peut être utilisé pour trier la chaîne par ordre alphabétique sans utiliser aucune fonction intégrée de python
k = input ("Entrez à nouveau une chaîne")
la source
J'ai vraiment aimé la réponse avec la fonction reduction (). Voici une autre façon de trier la chaîne en utilisant accumulate ().
trié (s) -> ['i', 'i', 'i', 'i', 'm', 'p', 'p', 's', 's', 's', 's' ]
tuple (accumuler (trié (s)) -> ('i', 'ii', 'iii', 'iiii', 'iiiim', 'iiiimp', 'iiiimpp', 'iiiimpps', 'iiiimppss', 'iiiimppsss ',' iiiimppssss ')
Nous sélectionnons le dernier index (-1) du tuple
la source