Преобразуйте список Python со строками в нижний или верхний регистр.

У меня есть переменная списка python, содержащая строки. Есть ли функция python, которая может преобразовывать все строки за один проход в нижний регистр и наоборот, в верхний регистр?

7 Solutions collect form web for “Преобразуйте список Python со строками в нижний или верхний регистр.”

Это можно сделать с помощью списков

>>> [x.lower() for x in ["A","B","C"]] ['a', 'b', 'c'] >>> [x.upper() for x in ["a","b","c"]] ['A', 'B', 'C'] 

или с функцией отображения

 >>> map(lambda x:x.lower(),["A","B","C"]) ['a', 'b', 'c'] >>> map(lambda x:x.upper(),["a","b","c"]) ['A', 'B', 'C'] 

Помимо того, что легче читать (для многих людей), списки понятий также выигрывают скорость гонки:

 $ 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 
 >>> map(str.lower,["A","B","C"]) ['a', 'b', 'c'] 

Смысл списка – это то, как я это сделаю. В этом фрагменте ниже показано, как преобразовать список во все верхние регистры, а затем назад:

 $ python Python 2.5.2 (r252:60911, Dec 2 2008, 09:26:14) [GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> list = ["one", "two", "three"] >>> list ['one', 'two', 'three'] >>> list = [element.upper() for element in list] >>> list ['ONE', 'TWO', 'THREE'] >>> list = [element.lower() for element in list] >>> list ['one', 'two', 'three'] 

Для этого образца понимание является самым быстрым

 $ python -m timeit -s 's = ["one", "two", "three"] * 1000' '[x.upper for x in s]'
 1000 циклов, лучше всего 3: 809 мксек за петлю

 $ python -m timeit -s 's = ["one", "two", "three"] * 1000' 'map (str.upper, s)'
 1000 циклов, лучше всего 3: 1.12 мсек за цикл

 $ python -m timeit -s 's = ["one", "two", "three"] * 1000' 'map (lambda x: x.upper (), s)'
 1000 циклов, лучше всего 3: 1,77 мсек за цикл
 mylist = ['Mixed Case One', 'Mixed Case Two', 'Mixed Three'] print map(lambda x: x.lower(), mylist) print map(lambda x: x.upper(), mylist) 

студент спрашивает, другой студент с той же проблемой отвечает :))

 fruits=['orange', 'grape', 'kiwi', 'apple', 'mango', 'fig', 'lemon'] newList = [] for fruit in fruits: newList.append(fruit.upper()) print(newlist) 
Interesting Posts

Можно ли создавать ярлыки в определенный каталог на python?

Почему я получаю уродливые фигурные скобки вокруг моего текста в виджетах ярлыков? – Tkinter

Как фильтровать словарь в соответствии с произвольной функцией условия?

Что произойдет, если я резко закрываю свой скрипт, пока он все еще выполняет операции ввода-вывода файлов?

Использовать нотацию фрагмента с помощью collection.deque

Лучший способ перетасовать два связанных списка

Вычисление среднего арифметического (среднее) в Python

Программный поиск google в Python с помощью пользовательского поиска

Наиболее эффективный способ удаления дубликатов из списка Python при сохранении порядка и удалении самого старого элемента

Многопроцессорство на разрыве Windows

Печать писем в определенном шаблоне в Python

Рекурсивно уменьшать список на 1

PyQT4: перетаскивание файлов в QListWidget

getpass.getpass () без другого кода?

Разделение кадра данных на несколько фреймов данных

Python - лучший язык программирования в мире.