Строка для перечисления в Python - PullRequest
28 голосов
/ 28 марта 2011

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

'QH QD JC KD JS'

в список вроде:

['QH', 'QD', 'JC', 'KD', 'JS']

Я попытался разделить, но это не сработало. Как бы я поступил так?

Спасибо

Ответы [ 5 ]

53 голосов
/ 28 марта 2011
>>> 'QH QD JC KD JS'.split()
['QH', 'QD', 'JC', 'KD', 'JS']

split:

Возвращает список слов в строке, используя sep в качестве строки-разделителя.Если задано maxsplit, то делается не более maxsplit разбиений (таким образом, список будет содержать не более maxsplit+1 элементов).Если maxsplit не указано, то количество разделений не ограничено (сделаны все возможные разбиения).

Если задано sep, последовательные разделители не группируются и считаются разделителямипустые строки (например, '1,,2'.split(',') возвращает ['1', '', '2']).Аргумент sep может состоять из нескольких символов (например, '1<>2<>3'.split('<>') возвращает ['1', '2', '3']).Разделение пустой строки указанным разделителем возвращает [''].

Если sep не указано или равно None, применяется другой алгоритм разделения: серии последовательных пробелов рассматриваются как один разделитель,и результат не будет содержать пустых строк в начале или конце, если строка имеет начальный или конечный пробел.Следовательно, разбиение пустой строки или строки, состоящей из только пробелов, с разделителем None возвращает [].

Например, ' 1 2 3 '.split() возвращает ['1', '2', '3'], а ' 1 2 3 '.split(None, 1) возвращает ['1', '2 3 '].

15 голосов
/ 15 ноября 2017

Здесь самые простые

a = [x for x in 'abcdefgh'] #['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
1 голос
/ 09 марта 2019

Может быть так:

list('abcdefgh') # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
0 голосов
/ 28 апреля 2019

Вы можете использовать функцию split (), которая возвращает список, чтобы разделить их.

letters = 'QH QD JC KD JS'

letters_list = letters.split()

Печать списка букв теперь будет иметь такой формат:

['QH', 'QD', 'JC', 'KD', 'JS']

Теперь выиметь список, с которым вы можете работать, как и с любым другим списком.Например, доступ к элементам на основе индексов:

print(letters_list[2])

Это напечатало бы третий элемент вашего списка, который является 'JC'

0 голосов
/ 15 октября 2018

Или ради удовольствия:

>>> ast.literal_eval('[%s]'%','.join(map(repr,s.split())))
['QH', 'QD', 'JC', 'KD', 'JS']
>>> 

ast.literal_eval

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...