Строка в список python: Как преобразовать строку в список в Python?

Содержание

Как преобразовать строку в список в Python?

как преобразовать строку в список?

говорят строки типа text = "a,b,c". После обращения,text == ['a', 'b', 'c'] и надеюсь text[0] == 'a', text[1] == 'b'?

11 ответов


такой:

>>> text = 'a,b,c'
>>> text = text.split(',')
>>> text
[ 'a', 'b', 'c' ]

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

>>> text = 'a,b,c'
>>> text = eval('[' + text + ']')

просто чтобы добавить к существующим ответам: надеюсь, вы столкнетесь с чем-то подобным в будущем:

>>> word = 'abc'
>>> L = list(word)
>>> L
['a', 'b', 'c']
>>> ''.join(L)
'abc'

но с чем вы имеете дело прямо сейчас перейдите с @Камерон’ы ответ.

>>> word = 'a,b,c'
>>> L = word.split(',')
>>> L
['a', 'b', 'c']
>>> ','.join(L)
'a,b,c'

следующий код Python превратит вашу строку в список строк:

import ast
teststr = "['aaa','bbb','ccc']"
testarray = ast.literal_eval(teststr)

в python вам редко нужно конвертировать строку в список, потому что строки и списки очень похожи

изменение типа

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

In [1]: x = "foobar"
In [2]: list(x)
Out[2]: ['f', 'o', 'o', 'b', 'a', 'r']

не изменять тип

обратите внимание, что строки очень похожи на списки в python

строки имеют аксессоры, например списки

In [3]: x[0]
Out[3]: 'f'

строки являются итерационными, как списки

In [4]: for i in range(len(x)):
...:     print x[i]
...:     
f
o
o
b
a
r

TLDR

строки списков. Почти.


Если вы действительно хотите массивов:

>>> from array import array
>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> myarray = array('c', text)
>>> myarray
array('c', 'abc')
>>> myarray[0]
'a'
>>> myarray[1]
'b'

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

>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> text[0]
'a'

В случае, если вы хотите разделить пробелами, вы можете просто использовать .split():

a = 'mary had a little lamb'
z = a.split()
print z

выход:

['mary', 'had', 'a', 'little', 'lamb'] 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa