Как создать строку, которая может быть использована в качестве массива в Python? - PullRequest
1 голос
/ 10 апреля 2010

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

Ответы [ 3 ]

5 голосов
/ 10 апреля 2010

Вот как строки Python уже работают:

>>> a = "abcd"
>>> a[0]
'a'
>>> a[2]
'c'

Но имейте в виду, что это доступ только для чтения.

3 голосов
/ 10 апреля 2010

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

>>> s = 'Hello, world!'
>>> l = list(s)
>>> l[7] = 'f'
>>> ''.join(l)
'Hello, forld!'
0 голосов
/ 10 апреля 2010

Я немного удивлен, что никто, кажется, не написал популярный класс-оболочку "MutableString" для Python. Я бы подумал, что вы хотите, чтобы она сохраняла строку в виде списка, возвращая ее через ''.join() и реализовывала набор методов, включая методы для строк (startswith, endswith, isalpha и все подобные и так одно) и те для списков.

Для простых операций достаточно просто работать со списком и использовать ''.join() по мере необходимости. Однако, для чего-то вроде: 'foobar'.replace('oba', 'amca'), когда вы работаете с представлением в списке, это становится уродливым. (that=list(''.join(that).replace(something, it)) ... или что-то в этом роде). Постоянное маршалирование между представлениями списка и строки визуально отвлекает.

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