Python에서 쉼표로 구분된 항목이 있는 문자열을 목록으로 변환하는 방법은 무엇입니까?
문자열을 목록으로 변환하려면 어떻게 해야 합니까?
줄이 다음과 같다고 말합니다.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' ]
기존의 답변에 덧붙이자면, 바라건대, 여러분은 미래에 이와 비슷한 것을 만나게 될 것입니다.
>>> 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)
그럴 필요는 없을 것 같습니다.
python에서는 문자열과 목록이 매우 유사하기 때문에 문자열을 목록으로 변환할 필요가 거의 없습니다.
유형 변경
문자열이 문자 배열이어야 하는 경우 다음을 수행합니다.
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
문자열은 목록입니다.거의.
공백으로 나누고 싶은 경우에는 다음과 같이 사용할 수 있습니다..split()
:
a = 'mary had a little lamb'
z = a.split()
print z
출력:
['mary', 'had', 'a', 'little', 'lamb']
실제로 어레이를 원하는 경우:
>>> 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'
m = '[[1,2,3],[4,5,6],[7,8,9]]'
m= eval(m.split()[0])
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
모든 답변이 좋습니다. 목록 이해라는 다른 방법이 있습니다. 아래 솔루션을 참조하십시오.
u = "UUUDDD"
lst = [x for x in u]
쉼표로 구분된 목록의 경우 다음을 수행합니다.
u = "U,U,U,D,D,D"
lst = [x for x in u.split(',')]
주로 사용하는 항목:
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
split()
여기 당신의 친구입니다.의 몇 가지 측면을 다루겠습니다.split()
다른 답변에서는 다루지 않습니다.
- 인수가 전달되지 않는 경우
split()
공백 문자(공백, 탭 및 새 줄)를 기준으로 문자열을 분할합니다.선행 및 후행 공백은 무시됩니다.또한 연속된 공백은 단일 구분 기호로 처리됩니다.
예:
>>> " \t\t\none two three\t\t\tfour\nfive\n\n".split()
['one', 'two', 'three', 'four', 'five']
- 단일 문자 구분 기호가 전달되면,
split()
기본 동작과 상당히 다르게 동작합니다.이 경우 선행/추적 구분 기호는 무시되지 않으며 반복 구분 기호도 하나로 "결합"되지 않습니다.
예:
>>> ",,one,two,three,,\n four\tfive".split(',')
['', '', 'one', 'two', 'three', '', '\n four\tfive']
따라서 공백 구분 기호를 사용하여 문자열을 분할하는 동안 공백을 제거해야 하는 경우 다음 구성을 사용합니다.
words = [item.strip() for item in string.split(',')]
- 다중 문자 문자열이 구분 기호로 전달되면 문자 클래스 또는 구분 기호 집합이 아닌 단일 구분 기호로 사용됩니다.
예:
>>> "one,two,three,,four".split(',,')
['one,two,three', 'four']
기호를 여구기를하나병로면다합사니다야용해음을려합을 .re.split(regex, string)
접근. 참고.아래의 관련 게시물을 참조하십시오.
관련된
# 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))
예 1
>>> email= "myemailid@gmail.com"
>>> email.split()
#OUTPUT
["myemailid@gmail.com"]
예 2
>>> email= "myemailid@gmail.com, someonsemailid@gmail.com"
>>> email.split(',')
#OUTPUT
["myemailid@gmail.com", "someonsemailid@gmail.com"]
언급URL : https://stackoverflow.com/questions/5387208/how-to-convert-a-string-with-comma-delimited-items-to-a-list-in-python
'programing' 카테고리의 다른 글
끈 만드는 법.대소문자를 구분하지 않는 내용을 포함합니까? (0) | 2023.05.25 |
---|---|
iOS 숫자 패드 키보드에서 "완료" 버튼을 표시하는 방법은 무엇입니까? (0) | 2023.05.25 |
Git의 텍스트 창을 종료하려면 어떻게 해야 합니까? (0) | 2023.05.25 |
WPF의 XAML에서 데이터 컨텍스트 설정 (0) | 2023.05.25 |
Postgresql: 조건부 고유 제약 조건 (0) | 2023.05.25 |