0
문자열에 목록을 넣어야합니다. 예를 들어 나는Python3의 우아한 문자열 파싱
C C .0033 .0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' C
이
['C', 'C', '.0033', '.0016', 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4', 'C']
그래서 따옴표로 모든 것이 하나의리스트 요소가됩니다 될 것을 요구; 그렇지 않으면 공백으로 구분 된 모든 것이 단일 목록 요소가됩니다.
내 첫번째 생각은 다시 함께 인용 섹션에있는 것들을 배치하고 새 배열에 '
를 포함하지 않는 항목을 배치하고, 간단한 분할했다 :
>>> s.split()
['C', 'C', '.0033', '.0016', "'International", 'Tables', 'Vol', 'C', 'Tables', '4.2.6.8', 'and', "6.1.1.4'", 'C']
>>> arr = []
>>> i = 0
>>> while i < len(s):
v = ''
if s[i].startswith("'"):
while not s[i].endswith("'"):
v = v.append(s[i]+ " ")
i += 1
v.append(s[i])
arr.append(v)
else:
arr.append(s[i])
을하지만,이 전략은 꽤 못생긴 것입니다. 그리고 그 문자열이 단일 공간에서 분리되었다고 가정해야합니다.
s.partition("'")
>>> s.partition("'")
('C C .0033 .0016 ', "'", "International Tables Vol C Tables 4.2.6.8 and 6.1.1.4' C")
하지만 난을 통해 반복으로 다시 분할해야하기 때문에 그것은 어색한, 그리고 어느 는 따옴표로이라고 할 수로 상황에 맞는입니다.
위에서 설명한대로이 문자열을 분할하는 간단한 Python3 방식이 있습니까?
OMG 어떻게 알았습니까? – user14717
나쁜 단어 선택. 편집 된 @NickThompson – Zroq