[PYTHON] 문자열 목록의 요소에서 후행 줄 바꾸기
PYTHON문자열 목록의 요소에서 후행 줄 바꾸기
다음과 같은 형식으로 많은 단어 목록을 가져와야합니다.
['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n']
그런 다음 strip 함수를 사용하여 다음과 같이 변환합니다.
['this', 'is', 'a', 'list', 'of', 'words']
내가 쓴 것이 제대로 작동 할 것이라고 생각했지만 오류가 계속 발생했다.
내가 시도한 코드는 다음과 같습니다.
strip_list = []
for lengths in range(1,20):
strip_list.append(0) #longest word in the text file is 20 characters long
for a in lines:
strip_list.append(lines[a].strip())
해결법
-
==============================
1.
>>> my_list = ['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n'] >>> map(str.strip, my_list) ['this', 'is', 'a', 'list', 'of', 'words']
-
==============================
2.목록 이해력? [x에서 lst에 대한 x.strip ()]
목록 이해력? [x에서 lst에 대한 x.strip ()]
-
==============================
3.목록 내포를 사용할 수 있습니다.
목록 내포를 사용할 수 있습니다.
strip_list = [item.strip() for item in lines]
또는지도 기능 :
# with a lambda strip_list = map(lambda it: it.strip(), lines) # without a lambda strip_list = map(str.strip, lines)
-
==============================
4.이것은 PEP 202에 정의 된 목록 내포를 사용하여 수행 할 수 있습니다
이것은 PEP 202에 정의 된 목록 내포를 사용하여 수행 할 수 있습니다
[w.strip() for w in ['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n']]
-
==============================
5.다른 모든 대답은 주로 목록의 이해력에 대한 것입니다. 그러나 오류를 설명하기 위해 :
다른 모든 대답은 주로 목록의 이해력에 대한 것입니다. 그러나 오류를 설명하기 위해 :
strip_list = [] for lengths in range(1,20): strip_list.append(0) #longest word in the text file is 20 characters long for a in lines: strip_list.append(lines[a].strip())
a는 색인이 아닌 목록의 구성원입니다. 당신이 쓸 수있는 것은 이것입니다 :
[...] for a in lines: strip_list.append(a.strip())
또 다른 중요한 의견 : 빈 목록을 이렇게 만들 수 있습니다.
strip_list = [0] * 20
그러나 .append가 목록에 항목을 추가하는 것처럼 이것은 유용하지 않습니다. 귀하의 경우에는 삭제 된 문자열을 추가 할 때 항목 당 항목을 작성하므로 불량 값이있는 목록을 만드는 것은 유용하지 않습니다.
따라서 코드는 다음과 같아야합니다.
strip_list = [] for a in lines: strip_list.append(a.strip())
그러나 이것이 정확히 똑같은 것이기 때문에, 가장 좋은 것은이 것입니다.
stripped = [line.strip() for line in lines]
혹시 .strip보다 복잡한 것을 가지고 있다면 이것을 함수에 넣고 똑같이하십시오. 목록을 가지고 작업하는 가장 읽기 쉬운 방법입니다.
-
==============================
6.후행 공백을 제거해야하는 경우 str.strip ()보다 약간 더 효율적인 str.rstrip ()을 사용할 수 있습니다.
후행 공백을 제거해야하는 경우 str.strip ()보다 약간 더 효율적인 str.rstrip ()을 사용할 수 있습니다.
>>> lst = ['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n'] >>> [x.rstrip() for x in lst] ['this', 'is', 'a', 'list', 'of', 'words'] >>> list(map(str.rstrip, lst)) ['this', 'is', 'a', 'list', 'of', 'words']
from https://stackoverflow.com/questions/7984169/remove-trailing-newline-from-the-elements-of-a-string-list by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 함수의 모든 인수를 다른 함수에 전달 (0) | 2018.11.04 |
---|---|
[PYTHON] 팬더 데이터 프레임에 상수 값이있는 열 추가 (0) | 2018.11.04 |
[PYTHON] pylint가있는 단일 특정 라인을 무시할 수 있습니까? (0) | 2018.11.04 |
[PYTHON] ConfigParser에서 대소 문자를 보존 하시겠습니까? (0) | 2018.11.04 |
[PYTHON] Django 1.7의 초기 마이그레이션에서 이전하는 방법은 무엇입니까? (0) | 2018.11.04 |