Python 일일 연습 5: 원하지 않는 개체를 제거하여 새 목록 생성

5135 단어 pythonbeginners

의문



주어진:

str_list = ["Emma", "Jon", "", "Kelly", None, "Eric", ""]


예상 출력:

Original list of sting
['Emma', 'Jon', '', 'Kelly', None, 'Eric', '']

After removing empty strings
['Emma', 'Jon', 'Kelly', 'Eric']


내 솔루션



처음에 아무런 단서가 없어서 힌트를 보니 filter() 함수를 사용하거나 for 루프 및 if 조건을 사용하여 목록에서 빈 문자열을 제거하라는 메시지가 표시됩니다.

나는 filter() 함수를 검색하고 배운다




str_list = ["Emma", "Jon", "", "Kelly", None, "Eric", ""]  
print("Original list of sting")

filtered_list = list(filter(None, str_list))  
print("After removing empty strings")  
print(filtered_list)


  • filter() 함수에는 filter(function, iterable) 구문이 있고 반복자를 반환하므로 결과를 출력할 수 없으며 모든 요소를 ​​포함하는 목록을 사용해야 합니다.
  • 하지만 목록 이해를 사용하는 것이 필터 기능보다 더 빠르고 쉽고 파이썬적이라고 생각합니다.

  • 또는 목록 이해력 사용




    str_list = ["Emma", "Jon", "", "Kelly", None, "Eric", ""]  
    new_list = [x for x in str_list if x]  
    
    print(new_list)
    


    기타 솔루션


  • if 루프 사용

  • str_list = ["Emma", "Jon", "", "Kelly", None, "Eric", ""]
    res_list = []
    for s in str_list:
        # check for non empty string
        if s:
            res_list.append(s)
    print(res_list)
    


    루프 알고리즘:
    새로운 빈 생성
    그런 다음 이전 목록을 반복합니다.
    개체의 진실이 거짓인지 확인
    (빈 문자열과 None은 기본적으로 False로 간주됨)
    객체가 True이면 새 목록에 추가

    내 반성


  • 객체의 기본 진리값을 기억하지 못하기 때문에 처음에는 if 루프를 사용하는 방법을 알 수 없습니다.

  • 신용 거래


  • 운동형Pynative
  • 좋은 웹페이지 즐겨찾기