Якщо розділений комами рядок розбивається на список у Python, якщо між ними немає пробілів, працюватиме просто split(). Якщо є пробіли, корисно об’єднати їх із strip(), щоб видалити зайві пробіли. Крім того, використання нотацій для розуміння списку є розумним способом писати.
У цьому розділі ми спочатку пояснюємо наступне.
- Розділіть рядок із зазначеним роздільником і поверніть його як список
split()
- Видаліть зайві символи з початку і кінця рядка.
strip()
- Позначення розуміння списку для застосування функцій і методів до елементів списку.
Він також показує, як скласти список рядків, розділених пробілами та комами, видаливши пробіли, як показано нижче.one, two, three'
Крім того, ми обговоримо наступне
- Як отримати його у вигляді списку чисел
- Як використовувати join(), щоб приєднатися до списку та знову зробити його рядком
split():Розділіть рядок із зазначеним роздільником і поверніть його як список
Використовуючи метод split() для рядків, ви можете розділити рядок із зазначеним роздільником і отримати його у вигляді списку (масиву). Вказаний роздільник можна вказати наступним аргументом.sep
Якщо аргумент sep опущено і роздільник не вказано, він розбиває рядок на пробіли і повертає список. Послідовні пробіли та табуляції також розділять список, тому, якщо ви хочете створити список рядків, розділених табуляції, ви можете використовувати split() без аргументу.
s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one\ttwo\tthree' l = s.split() print(l) # ['one', 'two', 'three']
Якщо в аргументі sep вказано роздільник, він ділить список на цей рядок і повертає список.
s = 'one::two::three' l = s.split('::') print(l) # ['one', 'two', 'three']
У випадку розділеного комами рядка, якщо немає зайвого пробілу, проблем немає, але якщо ви запустите split() з комою як роздільником рядка, розділеного комою + пробіл, ви закінчите зі списком рядків із пробілом, залишеним на початку.
s = 'one,two,three' l = s.split(',') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Ви можете використовувати кому + пробіл як роздільник, як показано нижче, але це не працюватиме, якщо кількість пробілів у вихідному рядку відрізняється., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
Метод рядка strip(), який буде пояснено далі, може використовуватися для роботи з двома пробілами.
strip():Видаліть зайві символи з початку і кінця рядка.
strip() – це метод видалення зайвих символів з початку та кінця рядка.
Якщо аргумент опущено, повертається новий рядок з вилученими пробілами. Сама оригінальна рядок не змінюється.
s = ' one ' print(s.strip()) # one print(s) # one
Якщо в якості аргументу вказано рядок, символи, що містяться в рядку, будуть видалені.
s = '-+-one-+-' print(s.strip('-+')) # one
У цьому випадку пробіли не видаляються. Тому, якщо ви також хочете видалити пробіли, передайте рядок із пробілами як аргумент, як показано нижче.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
strip() обробляє обидва кінці, але також доступні наступні функції.
lstrip()
:Обробляйте тільки початокrstrip()
:Обробляйте лише кінець рядка.
Позначення розуміння списку: застосування функцій і методів до елементів списку
Якщо ви хочете застосувати функцію або метод до елементів списку, розумно використовувати нотацію розуміння списку замість циклу for, якщо ви хочете отримати список в кінці.
- Пов’язані статті:Використання нотації розуміння списку Python
Тут ми застосовуємо strip() до списку, отриманого шляхом поділу рядка за допомогою split(). Зайві пробіли в рядку, розділеному комами, що містить пробіли, можна видалити, щоб створити список.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Якщо це застосувати до порожнього рядка, можна отримати список з одним порожнім рядком як елементом.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Якщо ви хочете отримати порожній список для порожнього рядка, ви можете налаштувати умовну гілку в нотації для розуміння списку.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
Крім того, якщо розділений комами елемент відсутній, як описано вище, перший метод відобразить його як порожній елемент рядка.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Якщо ви хочете ігнорувати відсутні частини, ви можете налаштувати умовну гілку в нотації для розуміння списку.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Отримати у вигляді списку чисел
Якщо ви хочете отримати розділений комами рядок чисел у вигляді списку чисел замість рядка, застосуйте int() або float(), щоб перетворити рядок у число в нотації для розуміння списку.
s = '1, 2, 3, 4' l = [x.strip() for x in s.split(',')] print(l) print(type(l[0])) # ['1', '2', '3', '4'] # <class 'str'> s = '1, 2, 3, 4' l = [int(x.strip()) for x in s.split(',')] print(l) print(type(l[0])) # [1, 2, 3, 4] # <class 'int'>
join():Об’єднайте список і отримайте його у вигляді рядка
У протилежному випадку, якщо ви хочете об’єднати список і отримати рядки, розділені певним роздільником, скористайтеся методом join().
Легко зробити помилку, але зверніть увагу, що join() є методом рядка, а не методом списку. Список задається як аргумент.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three'] print(','.join(l)) # one,two,three print('::'.join(l)) # one::two::three
Ви можете записати це в один рядок так.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Якщо ви просто хочете змінити фіксований роздільник, простіше замінити його методом replace().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three