Разбиение строки в список в Python - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть длинная строка символов, которую я хочу разделить на список отдельных символов.Я хочу включить пробелы в качестве членов списка тоже.Как мне это сделать?

Ответы [ 3 ]

11 голосов
/ 18 ноября 2010

вы можете сделать:

list('foo')

пробелы будут рассматриваться как члены списка (хотя и не сгруппированы вместе, но вы не указали, что вам это нужно)

>>> list('foo')
['f', 'o', 'o']
>>> list('f oo')
['f', ' ', 'o', 'o']
0 голосов
/ 19 ноября 2010

Это не ответ на первоначальный вопрос, а на ваше «как использовать опцию dict» (для имитации 2D-массива) в комментариях выше:

WIDTH = 5
HEIGHT = 5

# a dict to be used as a 2D array:
grid = {}

# initialize the grid to spaces
for x in range(WIDTH):
    for y in range(HEIGHT):
        grid[ (x,y) ] = ' '

# drop a few Xs
grid[ (1,1) ] = 'X'
grid[ (3,2) ] = 'X' 
grid[ (0,4) ] = 'X'

# iterate over the grid in raster order
for x in range(WIDTH):
    for y in range(HEIGHT):
        if grid[ (x,y) ] == 'X':
            print "X found at %d,%d"%(x,y)

# iterate over the grid in arbitrary order, but once per cell
count = 0
for coord,contents in grid.iteritems():
    if contents == 'X':
        count += 1

print "found %d Xs"%(count)

Кортежи, будучи неизменными,сделать совершенно хорошие словарные ключи.Ячейки в сетке не существуют, пока вы не назначите их, поэтому очень эффективно для разреженных массивов, если это ваша вещь.

0 голосов
/ 18 ноября 2010

Вот некоторые сравнения строк и списков строк, а также другой способ сделать список из строки явно интересным, в реальной жизни используйте list ():

b='foo of zoo'
a= [c for c in b]
a[0] = 'b'
print 'Item assignment to list and join:',''.join(a)

try:
    b[0] = 'b'
except TypeError:
    print 'Not mutable string, need to slice:'
    b= 'b'+b[1:]

print b
...