복붙노트

[PYTHON] 문자열 목록에서 문자 제거

PYTHON

문자열 목록에서 문자 제거

다음과 같은 문자열 목록이있는 경우 :

[("aaaa8"),("bb8"),("ccc8"),("dddddd8")...]

각 문자열에서 8을 모두 없애려면 어떻게해야합니까? 스트립을 사용하거나 for 루프를 대체하려고 시도했지만 정상적인 문자열 (목록에없는 문자열)처럼 작동하지 않습니다. 누구 제안이 있습니까?

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    lst = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
    print([s.strip('8') for s in lst]) # remove the 8 from the string borders
    print([s.replace('8', '') for s in lst]) # remove all the 8s 
    
  2. ==============================

    2.루프와 이해력을 사용하는 것 외에지도를 사용할 수도 있습니다.

    루프와 이해력을 사용하는 것 외에지도를 사용할 수도 있습니다.

    lst = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
    mylst = map(lambda each:each.strip("8"), lst)
    print mylst
    
  3. ==============================

    3.

    mylist = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
    print mylist
    j=0
    for i in mylist:
        mylist[j]=i.rstrip("8")
        j+=1
    print mylist
    
  4. ==============================

    4.더 빠른 방법은 목록에 가입하고 8을 대체하고 새 문자열을 분할하는 것입니다.

    더 빠른 방법은 목록에 가입하고 8을 대체하고 새 문자열을 분할하는 것입니다.

    mylist = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")]
    mylist = ' '.join(mylist).replace('8','').split()
    print mylist
    
  5. ==============================

    5.다음은 정규 표현식을 사용하는 짧은 한 줄짜리 코드입니다.

    다음은 정규 표현식을 사용하는 짧은 한 줄짜리 코드입니다.

    print [re.compile(r"8").sub("", m) for m in mylist]
    

    정규식 연산을 분리하고 이름을 향상 시키면 :

    pattern = re.compile(r"8") # Create the regular expression to match
    res = [pattern.sub("", match) for match in mylist] # Remove match on each element
    print res
    
  6. ==============================

    6.

    lst = [("aaaa8"),("bb8"),("ccc8"),("dddddd8")...]
    
    msg = filter(lambda x : x != "8", lst)
    
    print msg
    
  7. from https://stackoverflow.com/questions/8282553/removing-character-in-list-of-strings by cc-by-sa and MIT license