У меня есть переменная списка python, содержащая строки. Есть ли функция python, которая может преобразовывать все строки за один проход в нижний регистр и наоборот, в верхний регистр?Преобразование списка Python со строками в нижнем или верхнем регистре
ответ
Это можно сделать с помощью списков. Они в основном принимают форму [function-of-item for item in some-list]
. Например, чтобы создать новый список, в котором все элементы нижнего накладного (или в верхнем регистре во втором фрагменте), вы должны использовать:
>>> [x.lower() for x in ["A","B","C"]]
['a', 'b', 'c']
>>> [x.upper() for x in ["a","b","c"]]
['A', 'B', 'C']
Вы можете также использовать map
функцию:
>>> map(lambda x:x.lower(),["A","B","C"])
['a', 'b', 'c']
>>> map(lambda x:x.upper(),["a","b","c"])
['A', 'B', 'C']
Функция карты работает так, как ожидалось, в python2, однако в python3 вы должны обернуть карту в список ex: 'list (map (lambda x: x.upper(), [" a "," b "," c "]))' –
Второе предложение с ** map ** является правильным, но расточительным. ** Нет смысла делать лямбда-функцию **. Просто используйте 'map (str.lower, [" A "," B "," C "])' – fralau
Понимание списка - это то, как я это сделаю, это «питонический» способ. Следующий транскрипт показывает, как преобразовать список в верхний регистр затем обратно к нижней:
[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, использование 'list' в качестве имени переменной не лучший выбор :) –
Нет, но поскольку имя имеет мало значения для показанного метода, это не имеет особого значения. Однако я изменю имя, если кто-то захочет использовать код как есть. – paxdiablo
волшебство stackoverflow: 250 голосов для python 2-единственное решение, использующее лямбда, где это не должно быть! хорошо 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']
Очевидно, что 'str.upper' для преобразования в верхний регистр –
не будет работать слишком хорошо на строки unicode в python 2 – mhawke
Помимо того, что легче читать (для многих), списочные выиграть гонку скорости, слишком :
$ 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
Знаете ли вы причину, по которой понимание списка быстрее, чем карта? – Nixuz
Это не всегда быстрее. Вот пример, где это не так: http://stackoverflow.com/questions/1247486/python-list-comprehension-vs-map Но в этом случае это не так уж и много. Очевидно, что использование лямбда имеет большое значение. Есть еще примеры того, почему опасно доверять своей интуиции в вопросах производительности, особенно в Python. –
в python 3, 'map' выигрывает гонку, но ничего не делает :) –
Для этого образца понимание является самым быстрым
$ 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
студент спрашивает, другой студент с той же проблемой отвечает :))
fruits=['orange', 'grape', 'kiwi', 'apple', 'mango', 'fig', 'lemon']
newList = []
for fruit in fruits:
newList.append(fruit.upper())
print(newlist)
- 1. JavaScript/HTML в верхнем или нижнем регистре?
- 2. Рельсы в верхнем или нижнем регистре
- 3. JavaScript заменить() в верхнем или нижнем регистре
- 4. php array - в верхнем регистре или в нижнем регистре
- 5. Поиск количества слов в верхнем регистре или в нижнем регистре
- 6. java final array в нижнем регистре или в верхнем регистре
- 7. str_replace и в верхнем регистре или в нижнем регистре
- 8. в верхнем регистре в нижнем регистре в bash на mac
- 9. Потерянные строки в верхнем и нижнем регистре
- 10. Выберите часть строки и измените ее в нижнем регистре или в верхнем регистре. Python 3.x
- 11. PHP gettext изменения в верхнем регистре/в нижнем регистре
- 12. Нужны ли имена примитивных типов в верхнем или нижнем регистре?
- 13. ASP.NET MVC 3 Поиск в верхнем или нижнем регистре Linq
- 14. SQL, изменяющий значение в верхнем или нижнем регистре
- 15. get_post_meta в нижнем регистре
- 16. ElasticSearch скопления - в нижнем регистре или не в нижнем регистре
- 17. как в нижнем регистре список в python
- 18. Ошибка недопустимого числа - преобразование в нижнем регистре и в верхнем регистре (0xdf)
- 19. Преобразование полного массива символов в нижнем регистре/верхнем регистре обратно на пользовательский ввод
- 20. Поиск отсутствующего письма в списке (в нижнем регистре или в верхнем регистре, исключительно)
- 21. как загорать слова в любом случае (в верхнем регистре, в нижнем регистре частично или полностью)?
- 22. Пользовательский ввод принимается, вводятся ли они в верхнем регистре или в нижнем регистре в C++
- 23. VB.Net: Получение ввода и отображения в верхнем и нижнем регистре
- 24. Сделайте все свойства в нижнем регистре или в верхнем регистре, используя отражающие?
- 25. нечувствительный к регистру поиск в верхнем регистре или в нижнем регистре
- 26. UserForm для изменения текста в верхнем регистре, в нижнем регистре или с использованием надлежащей функции
- 27. Каким будет регулярное выражение для слова, заканчивающегося буквой в нижнем регистре или в верхнем регистре?
- 28. Ввод всегда (сила) в нижнем регистре или в верхнем регистре - ios swift
- 29. vi подчеркивает bash-скриптинг в верхнем регистре или в нижнем регистре как ошибка
- 30. Проверьте, имеет ли строка букву в верхнем регистре или в нижнем регистре
Почему «за один проход»? Рассматриваете ли вы возможность принятия нескольких пропусков? –
«за один проход» пахнет домашним языком –