Ho una variabile lista python che contiene stringhe. Esiste una funzione python in grado di convertire tutte le stringhe in un passaggio in lettere minuscole e viceversa in maiuscolo?Convertire una lista Python con stringhe tutte minuscole o maiuscole
risposta
Si può fare con la comprensione delle liste. Questi sostanzialmente prendono la forma di [function-of-item for item in some-list]
. Ad esempio, per creare un nuovo elenco in cui tutti gli elementi sono in minuscolo (o in maiuscolo nel secondo frammento di), si usa:
>>> [x.lower() for x in ["A","B","C"]]
['a', 'b', 'c']
>>> [x.upper() for x in ["a","b","c"]]
['A', 'B', 'C']
È anche possibile utilizzare la funzione map
:
>>> map(lambda x:x.lower(),["A","B","C"])
['a', 'b', 'c']
>>> map(lambda x:x.upper(),["a","b","c"])
['A', 'B', 'C']
La funzione mappa funziona come previsto in python2, tuttavia in python3 devi avvolgere la mappa in un elenco ex: 'list (map (lambda x: x.upper(), [" a "," b "," c "]))' –
La seconda proposizione con ** map ** è corretta ma dispendiosa. Non c'è ** nessun punto nel fare una funzione lambda **. Basta usare 'map (str.lower, [" A "," B "," C "])' – fralau
La comprensione delle liste è come lo farei, è il modo "Pythonic". La seguente trascrizione mostra come convertire un elenco di tutte le lettere maiuscole poi di nuovo a più bassa:
[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, usando 'list' come un nome variabile non è la scelta migliore :) –
No, ma dal nome è di poca importanza per il metodo che viene mostrato, non è davvero rilevante. Tuttavia, cambierò il nome nel caso qualcuno voglia utilizzare il codice così com'è. – paxdiablo
la magia dello stackoverflow: 250 voti per una soluzione solo 2 in pitone usando lambda dove non dovrebbe !! bene 249 ora –
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']
ovviamente 'str.upper' per convertire in maiuscolo –
non funzionerà molto bene su stringhe unicode in python 2 – mhawke
Oltre ad essere più facile da leggere (per molte persone), list comprehension vincere la gara di velocità, troppo :
$ 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
Conosci il motivo per cui una comprensione delle liste è più veloce della mappa? – Nixuz
Non è sempre più veloce. Ecco un esempio in cui non lo è: http://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map Ma in questo caso non è * molto * più lento. Usare una lambda fa ovviamente una grande differenza. Ci sono altri esempi del perché è pericoloso fidarsi del proprio intuito su problemi di prestazioni, specialmente in Python. –
in python 3, 'map' vince la gara, ma non fa niente :) –
Per questo esempio la comprensione è più veloce
$ 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
uno studente che chiede, un altro studente con lo stesso problema di rispondere :))
fruits=['orange', 'grape', 'kiwi', 'apple', 'mango', 'fig', 'lemon']
newList = []
for fruit in fruits:
newList.append(fruit.upper())
print(newlist)
- 1. php array - maiuscole o minuscole
- 2. javascript confrontare stringhe senza maiuscole/minuscole
- 3. Come analizzare stringhe maiuscole e minuscole con jsr310 DateTimeFormatter?
- 4. Come convertire lettere maiuscole in lettere minuscole
- 5. Maiuscole/minuscole sostituire
- 6. Maiuscole/minuscole #define
- 7. Trova maiuscole/minuscole in Python ElementTree
- 8. La raccolta rimuove Tutte le maiuscole e minuscole?
- 9. Maiuscole/minuscole per NSDictionary
- 10. Ricerca SOLR maiuscole/minuscole
- 11. Confronto stringhe maiuscole e minuscole non funzionante in C#?
- 12. Posso usare awk per convertire tutte le lettere minuscole in maiuscole?
- 13. MAIUSCOLE, lettere minuscole, maiuscole in una proprietà Ant
- 14. Java come ordinare le lettere minuscole prima delle stringhe maiuscole
- 15. Come trovare tutte le stringhe maiuscole in una tabella MySQL?
- 16. javascript: ignorando la distinzione tra maiuscole e minuscole delle stringhe
- 17. Confronto insensibile alle maiuscole/minuscole delle stringhe nello script shell
- 18. Selezione stringhe e distinzione tra maiuscole e minuscole
- 19. if/else istruzioni che accettano stringhe in lettere maiuscole e minuscole in python
- 20. Come convertire le lettere maiuscole in minuscole in Notepad ++
- 21. Corrispondenza delle maiuscole senza distinzione tra maiuscole e minuscole
- 22. Elenco senza distinzione tra maiuscole e minuscole
- 23. Convertire una lista di stringhe ad una singola stringa
- 24. Colonna con lista di stringhe in Python
- 25. problema con lista di stringhe in Python
- 26. Ordinamento non sensibile alle maiuscole/minuscole con Firebase orderByChild
- 27. ignora maiuscole e minuscole in regex.replace?
- 28. Python: convertire lista al generatore
- 29. Cambia maiuscole/minuscole dei nomi delle colonne
- 30. PyPI è sensibile alle maiuscole/minuscole?
Perché "in un solo passaggio"? Prendi in considerazione la possibilità che faccia più passaggi? –
"in one pass" profuma come il linguaggio dei compiti –