[python] List find 특정 값 찾기






💡 팁 in이 가장 편합니다.




1. List의 특성

  • 리스트를 정의할 땐 중괄호 []를 사용합니다.
  • a = [1, 2]
  • 순서화된 요소(인덱스 이용)이면나 요소간 중복이 가능합니다.
    b = [‘apple’, ‘banana’, ‘banana’]
  • 추가/변경/삭제 가능합니다.
    a = [1, 4, 3, 2]
    a.append(4)     # 리스트의 맨 뒤에 `4`를 추가
    print(a)
    #출력된 값  [1, 4, 3, 2, 4]
  • 리스트 안에 리스트를 다시 넣을 수도 있고, 다른 형식의 벡터를 넣을 수도 있습니다.
    e = [1, 2, (‘apple’, ‘banana’)] #[]리스트 안에 ()튜플이 있습니다.







2. List 내 값(요소)을 찾는 방법

  • python list에서 원하는 값(요소)를 찾는 방법은 크게 3가지로 볼 수 있습니다.
  • 값을 갖고 있는 index를 검색하여 값이 존재하는 지 찾는 방법이 있습니다. 
    • list.index('sbj')
  • 값 자체를 선형(순차) 검색하는 방법입니다.
    • for ~ if 문
  • 멤버 연산자 in 을 통한 검색 방법입니다.
    • 'sbj' in list









3. index를 통한 검색

  • index(값)은 list 내에서 값이 위치한 index를 반환합니다.
  • a=['apple', 'banana', 'milk', 'juice']
    print(a.index('milk'))
    #출력된 값 2
  • 값이 존재하지 않는 index는 error를 반환합니다.
    a=['apple', 'banana', 'milk', 'juice']
    print(a.index('cookie'))
    #출력된 값 ValueError: 'cookie' is not in list
  • try ~ if 문을 조합하여 검색식을 만들 수 있습니다.
    a=['apple', 'banana', 'milk', 'juice']
    b='milk'
    try:
        if type(a.index(b)) is int:
            print('%s is found' % b)
    except :
        print('%s does not found' % b)
    #출력된 값  milk is found







4. 선형 검색(linear Search)

  • 리스트의 모든 요소를 하나씩 비교하면서 값이 존재하는 지 찾습니다. 값이 존재한다면 True를 반환하고 아니면 False를 반환합니다.
  • def search(list, target):
        for i in range(len(list)):
            if list[i] == target:
    return True return False basket = ['apple', 'banana', 'milk', 'juice']
    target = 'cookie' if search(basket, target): print("%s is found" % target) else: print("%s is not found" % target) #출력된 값 cookie does not found








5. 멤버 연산자 in 을 통한 검색

  • target in list
  • basket = ['apple', 'banana', 'milk', 'juice']
    target = 'banana'
    if target in basket:
         print("%s is found" % target)
    else:
         print("%s is not found" % target)
    #출력된 값  banana is found
    








    [참고] 조건 검색(filtering)

    • for ~ if문을 조합하여 특정 조건을 만족하는 값을 찾는 검색을 할 수 있습니다.
      basket = ['apple', 'banana', 'milk', 'juice']
      condition = 6
      result = any(len(elem) == condition for elem in basket)
      if result: print("Yes, condition %d was met" % condition)
      else: print("No, condition %d was not met" % condition) #출력된 값 Yes, condition 6 was met
















댓글 쓰기

0 댓글