J'ai une variable de liste Python qui contient des chaînes. Y at-il une fonction python qui peut convertir toutes les chaînes en un passage en minuscules et vice versa, en majuscules?Convertir une liste Python avec des chaînes en minuscules ou en majuscules
Répondre
Cela peut être fait avec des listes compréhensibles. Ceux-ci prennent essentiellement la forme de [function-of-item for item in some-list]
. Par exemple, pour créer une nouvelle liste où tous les éléments sont en minuscules (ou tubé supérieure dans le second extrait), vous utilisez:
>>> [x.lower() for x in ["A","B","C"]]
['a', 'b', 'c']
>>> [x.upper() for x in ["a","b","c"]]
['A', 'B', 'C']
Vous pouvez également utiliser la fonction map
:
>>> map(lambda x:x.lower(),["A","B","C"])
['a', 'b', 'c']
>>> map(lambda x:x.upper(),["a","b","c"])
['A', 'B', 'C']
La fonction de la carte fonctionne comme prévu dans python2, mais dans python3 vous pouvez envelopper la carte dans une liste ex: 'list (map (lambda x: x.upper(), [" a "," b "," c "]))' –
Deuxième proposition avec ** carte ** est correcte mais inutile. Il n'y a aucun intérêt à faire une fonction lambda **. Il suffit d'utiliser 'map (str.lower, [" A "," B "," C "])' – fralau
La compréhension de liste est comment je le ferais, c'est la manière "Pythonic". La transcription ci-dessous montre comment convertir une liste à tous les majuscules puis de nouveau à bas:
[email protected]:~$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x = ["one", "two", "three"] ; x
['one', 'two', 'three']
>>> x = [element.upper() for element in x] ; x
['ONE', 'TWO', 'THREE']
>>> x = [element.lower() for element in x] ; x
['one', 'two', 'three']
err, en utilisant 'list' comme nom de variable n'est pas le meilleur choix :) –
Non mais, depuis le nom est peu important pour la méthode montrée, ce n'est pas vraiment pertinent. Cependant, je vais changer le nom au cas où quelqu'un voudrait utiliser le code tel quel. – paxdiablo
la magie de stackoverflow: 250 votes pour une solution python 2-only utilisant lambda où elle ne devrait pas !! Eh bien, maintenant 249 –
mylist = ['Mixed Case One', 'Mixed Case Two', 'Mixed Three']
print map(lambda x: x.lower(), mylist)
print map(lambda x: x.upper(), mylist)
>>> map(str.lower,["A","B","C"])
['a', 'b', 'c']
évidemment 'str.upper' pour convertir en majuscule –
ne fonctionnera pas trop bien sur les chaînes unicode en python 2 – mhawke
En plus d'être plus facile à lire (pour beaucoup de gens), compréhensions liste gagner la course de vitesse, trop :
$ python2.6 -m timeit '[x.lower() for x in ["A","B","C"]]'
1000000 loops, best of 3: 1.03 usec per loop
$ python2.6 -m timeit '[x.upper() for x in ["a","b","c"]]'
1000000 loops, best of 3: 1.04 usec per loop
$ python2.6 -m timeit 'map(str.lower,["A","B","C"])'
1000000 loops, best of 3: 1.44 usec per loop
$ python2.6 -m timeit 'map(str.upper,["a","b","c"])'
1000000 loops, best of 3: 1.44 usec per loop
$ python2.6 -m timeit 'map(lambda x:x.lower(),["A","B","C"])'
1000000 loops, best of 3: 1.87 usec per loop
$ python2.6 -m timeit 'map(lambda x:x.upper(),["a","b","c"])'
1000000 loops, best of 3: 1.87 usec per loop
Savez-vous la raison derrière pourquoi une compréhension de la liste est plus rapide que la carte? – Nixuz
Ce n'est pas toujours plus rapide. Voici un exemple où ce n'est pas: http://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map Mais ce n'est pas * beaucoup * plus lent dans ce cas. L'utilisation d'un lambda fait évidemment une grande différence. Il y a plus d'exemples de pourquoi il est dangereux de faire confiance à votre intuition sur les problèmes de performance, en particulier en Python. –
en python 3, 'map' gagne la course, mais ne fait rien :) –
Pour cet échantillon, la compréhension est la plus rapide
$ python -m timeit -s 's=["one","two","three"]*1000' '[x.upper for x in s]' 1000 loops, best of 3: 809 usec per loop $ python -m timeit -s 's=["one","two","three"]*1000' 'map(str.upper,s)' 1000 loops, best of 3: 1.12 msec per loop $ python -m timeit -s 's=["one","two","three"]*1000' 'map(lambda x:x.upper(),s)' 1000 loops, best of 3: 1.77 msec per loop
un étudiant demandant, un autre étudiant avec le même problème répondant :))
fruits=['orange', 'grape', 'kiwi', 'apple', 'mango', 'fig', 'lemon']
newList = []
for fruit in fruits:
newList.append(fruit.upper())
print(newlist)
- 1. Conversion des majuscules en NSString en minuscules
- 2. Comment convertir les minuscules en majuscules?
- 3. Comment convertir une chaîne en majuscules ou en minuscules avec XSLT?
- 4. Comment définir les chaînes en majuscules/minuscules dans Unicode?
- 5. convertir majuscules en minuscules en C .. (un défi)
- 6. php array - majuscules ou minuscules
- 7. Conversion en majuscules et minuscules dans Java
- 8. urls majuscules et minuscules en PHP
- 9. Convertir une balise HTML en minuscules
- 10. Convertir la chaîne Unicode/UTF-8 en majuscules/minuscules en utilisant la bibliothèque pure & pythonic
- 11. bug..web minuscules en majuscules dev
- 12. convertir en majuscules en utilisant des macros
- 13. Comment convertir des chaînes en entiers en Python?
- 14. Dictionnaire en minuscules en Python
- 15. comment convertir une lettre donnée dans une chaîne de minuscules à majuscules en ruby
- 16. L'étiquette d'une partition de disque dur est-elle en majuscules ou en minuscules? (C: \ ou c: \)
- 17. ne peut pas convertir les minuscules en majuscules par une directive préprocesseur
- 18. Dois-je stocker tout le texte de ma base de données en majuscules ou en minuscules?
- 19. Convertir une liste Python en colonne CSV
- 20. Comment remplacer par une expression régulière en minuscules en python
- 21. Convertir une chaîne ou une chaîne [] en liste avec Groovy
- 22. Conversion de séries de chaînes en liste flottante en python
- 23. Faire correspondre une chaîne dans jQuery indépendamment des majuscules/minuscules
- 24. Convertir des données à plat en une liste hiérarchique python
- 25. Rails i18n chaînes auto-minuscules?
- 26. Comment transférer des caractères entre majuscules et minuscules avec sed
- 27. concat_ws et minuscules et majuscules
- 28. Convertir la liste des flottants en tampon en Python?
- 29. Est-ce que Notepad ++ peut convertir des chaînes en expressions minuscules?
- 30. Comment convertir une liste de chaînes en doubles?
Pourquoi "en un seul passage"? Envisagez-vous la possibilité de prendre plusieurs passes? –
"en un passage" sent le langage des devoirs –