복붙노트

[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. ==============================

    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. ==============================

    2.목록 이해력? [x에서 lst에 대한 x.strip ()]

    목록 이해력? [x에서 lst에 대한 x.strip ()]

  3. ==============================

    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. ==============================

    4.이것은 PEP 202에 정의 된 목록 내포를 사용하여 수행 할 수 있습니다

    이것은 PEP 202에 정의 된 목록 내포를 사용하여 수행 할 수 있습니다

    [w.strip() for w in  ['this\n', 'is\n', 'a\n', 'list\n', 'of\n', 'words\n']]
    
  5. ==============================

    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. ==============================

    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']
    
  7. from https://stackoverflow.com/questions/7984169/remove-trailing-newline-from-the-elements-of-a-string-list by cc-by-sa and MIT license