파이썬에서 문자열을 목록으로 변환하는 방법은 무엇입니까?
문자열을 목록으로 어떻게 변환합니까?
문자열이 text = "a,b,c"
. 변환 후, text == ['a', 'b', 'c']
그리고 바라건대 text[0] == 'a'
, text[1] == 'b'
?
이렇게 :
>>> 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'
그러나 지금 당장 다루고있는 것은 @ Cameron 의 대답으로 가십시오 .
>>> 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)
난 당신이 생각하지 않는다 필요 에
파이썬에서는 문자열과 목록이 매우 유사하기 때문에 문자열을 목록으로 변환 할 필요가 거의 없습니다.
유형 변경
문자 배열이어야하는 문자열이있는 경우 다음을 수행하십시오.
In [1]: x = "foobar"
In [2]: list(x)
Out[2]: ['f', 'o', 'o', 'b', 'a', 'r']
유형을 변경하지 않음
문자열은 파이썬의 목록과 매우 비슷합니다.
문자열에는 목록과 같은 접근자가 있습니다.
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']
m = '[[1,2,3],[4,5,6],[7,8,9]]'
m= eval(m.split()[0])
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
나는 보통 다음을 사용합니다.
l = [ word.strip() for word in text.split(',') ]
strip
단어 주위 제거 공간.
내가 작성한 string
양식을 a="[[1, 3], [2, -6]]"
아직 최적화하지 않은 코드 로 변환하려면 다음 을 수행하십시오 .
matrixAr = []
mystring = "[[1, 3], [2, -4], [19, -15]]"
b=mystring.replace("[[","").replace("]]","") # to remove head [[ and tail ]]
for line in b.split('], ['):
row =list(map(int,line.split(','))) #map = to convert the number from string (some has also space ) to integer
matrixAr.append(row)
print matrixAr
# to strip `,` and `.` from a string ->
>>> 'a,b,c.'.translate(None, ',.')
'abc'
translate
문자열 에 대해서는 내장 메소드를 사용해야합니다 .
help('abc'.translate)
자세한 내용은 Python 셸에 입력 하세요.
기능적 Python 사용 :
text=filter(lambda x:x!=',',map(str,text))
All answers are good, there is another way of doing, which is list comprehension, see the solution below.
u = "UUUDDD"
lst = [x for x in u]
for comma separated list do the following
u = "U,U,U,D,D,D"
lst = [x for x in u.split(',')]
참고URL : https://stackoverflow.com/questions/5387208/how-to-convert-a-string-to-a-list-in-python
'Programing' 카테고리의 다른 글
삼항 연산자를 사용할 때 C에서 문자열 연결을 허용하지 않는 이유는 무엇입니까? (0) | 2020.08.26 |
---|---|
Android에서 아래 첨자와 위 첨자 문자열 (0) | 2020.08.26 |
errno : 150을 제공하는 외래 키를 사용하여 MySQL 생성 테이블 (0) | 2020.08.26 |
Android Studio-자동 완성 및 기타 기능이 작동하지 않음 (0) | 2020.08.26 |
현재 페이지 얻기 (0) | 2020.08.26 |