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

224
задан Nakilon 17 September 2012 в 23:35
поделиться

8 ответов

Это можно сделать с помощью списков. В основном они имеют форму [функция-элемента для элемента в некотором-списке] . Например, чтобы создать новый список, в котором все элементы указаны в нижнем регистре (или в верхнем регистре во втором фрагменте), вы должны использовать:

>>> [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']
388
ответ дан 23 November 2019 в 03:56
поделиться

При попытке преобразовать всю строку в нижний регистр в списке, можно использовать панд:

import pandas as pd

data = ['Study', 'Insights']

pd_d = list(pd.Series(data).str.lower())

вывод:

['study', 'insights']
0
ответ дан 23 November 2019 в 03:56
поделиться

Намного более простая версия главного ответа дана здесь @Amorpheuses.

Со списком значений в val:

valsLower = [item.lower() for item in vals]

Это работало хорошо на меня с f = открытый () текстовый источник.

0
ответ дан 23 November 2019 в 03:56
поделиться

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

$ 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
49
ответ дан 23 November 2019 в 03:56
поделиться
>>> map(str.lower,["A","B","C"])
['a', 'b', 'c']
33
ответ дан 23 November 2019 в 03:56
поделиться

Понимание списков - это то, как я это делаю, это "питонический" способ. В следующей записи показано, как преобразовать список в верхний регистр, а затем обратно в нижний:

pax@paxbox7:~$ 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']
20
ответ дан 23 November 2019 в 03:56
поделиться

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

$ 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
6
ответ дан 23 November 2019 в 03:56
поделиться
mylist = ['Mixed Case One', 'Mixed Case Two', 'Mixed Three']
print map(lambda x: x.lower(), mylist)
print map(lambda x: x.upper(), mylist)
2
ответ дан 23 November 2019 в 03:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: