Подтвердить что ты не робот

Как разбить строку, используя пустой разделитель в Python

Что такое хороший способ сделать some_string.split('') в python? Этот синтаксис дает ошибку:

a = '1111'
a.split('')

ValueError: empty separator

Я хотел бы получить:

['1', '1', '1', '1']
4b9b3361

Ответ 1

Используйте list():

>>> list('1111')
['1', '1', '1', '1']

В качестве альтернативы вы можете использовать map():

>>> map(None, '1111')
['1', '1', '1', '1']

Разница во времени:

$ python -m timeit "list('1111')"
1000000 loops, best of 3: 0.483 usec per loop
$ python -m timeit "map(None, '1111')"
1000000 loops, best of 3: 0.431 usec per loop

Ответ 2

Можно напрямую записывать строки для

>>> list('1111')
['1', '1', '1', '1']

или использования списков

>>> [i for i in '1111']
['1', '1', '1', '1']

второй способ может быть полезен, если вы хотите разделить строки на подстроки длиной более 1 символа

>>> some_string = '12345'
>>> [some_string[i:i+2] for i in range(0, len(some_string), 2)]
['12', '34', '5']

Ответ 3

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

>>> for char in '11111':
...   print char
... 
1
1
1
1
1
>>> '11111'[4]
'1'

Вы можете "разбить" его на вызов в список, но это не имеет большого значения:

>>> for char in list('11111'):
...   print char
... 
1
1
1
1
1
>>> list('11111')[4]
'1'

Поэтому вам нужно сделать это, только если ваш код явно ожидает список. Например:

>>> list('11111').append('2')
>>> l = list('11111')
>>> l.append(2)
>>> l
['1', '1', '1', '1', '1', 2]

Это не работает с прямой строкой:

>>> l.append('2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'append'

В этом случае вам понадобится:

>>> l += '2'
>>> l
'111112'

Ответ 4

Метод # 1:

s="Amalraj"
l=[i for i in s]
print(l)

Вывод:

['A', 'm', 'a', 'l', 'r', 'a', 'j']

Способ №2:

s="Amalraj"
l=list(s)
print(l)

Вывод:

['A', 'm', 'a', 'l', 'r', 'a', 'j']

Способ № 3:

import re; # importing regular expression module
s="Amalraj"
l=re.findall('.',s)
print(l)

Вывод:

['A', 'm', 'a', 'l', 'r', 'a', 'j']