Coding Diary.

(파이썬) 리스트에서 유용한 메소드와 함수 총정리 본문

Coding/Python

(파이썬) 리스트에서 유용한 메소드와 함수 총정리

life-of-nomad 2023. 5. 6. 18:48
728x90
반응형

 

🔻(참고)리스트🔻

 

(파이썬) 데이터 구조의 유형 중 가장 많이 쓰이는 리스트 총정리

1. 데이터 구조데이터 구조란 다양한 방식으로 데이터 유형들을 모아 조직하고 그룹화하는 데이터 컨테니어 혹은 데이터 컬렉션입니다.데이터가 담긴 파일들을 정리해 놓은 파일 폴더라고 볼

life-of-nomad.tistory.com

 

1. 메소드

1) in 과 not in (리스트에서 값의 존재 확인하기)

  • 어떤 값이 리스트에 있는지 여부를 확인하는 함수를 만들어보겠습니다.
# value가 some_list의 요소인지 확인
def in_list(some_list, value):
    i = 0
    while i < len(some_list):
        # some_list에서 value를 찾으면 True를 리턴
        if some_list[i] == value:
            return True
        i = i+1

    # 만약 some_list에서 value를 발견하지 못했으면 False를 리턴
           return False

# 테스트
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(in_list(primes, 7))
print(in_list(primes, 12))
  • 위와 같이 실행하면 아래와 같이 결과가 나옵니다.
True
False
  • 쓰는데 아주 어렵지는 않습니다.
  • 하지만 리스트에 값의 존재를 확인하는 것은 너무 자주 있는 일이라서 파이썬에 이미 이 기능이 내장되어 있습니다.
  • in 이라는 키워드를 쓰면 됩니다.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
True
False
  • 반대로, 값이 없는지 확인하려면 in 앞에 not 을 붙이면 됩니다.
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
False
True

 

2)  sort 메소드

  • some_list.sort()는 새로운 리스트를 생성하지 않고 some_list를 정렬된 상태로 바꿔줍니다.
numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
[1, 3, 5, 7]

 

3) reverse 메소드

  • some_list.reverse() 는 some_list의 원소들을 뒤집어진 순서로 배치합니다.
numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
[1, 7, 3, 5]

 

4) index 메소드

  • some_list.index(x)는 some_list에서 x의 값을 갖고 있는 원소의 인덱스를 리턴해줍니다.
members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수"))
print(members.index("태호"))
1
2

 

5)  remove 메소드

  • some_list.remove(x)는 some_list에서 첫 번째로 x의 값을 갖고 있는 원소를 삭제해줍니다.
fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)
['딸기', '당근', '수박', '참외', '메론']

 

6) join 메소드

  • join은 문자열로 된 리스트를 인수로 받아서, 구분자 문자열을 이용하여 결합한 리스트 요소들로 된 문자열을 리턴하는 문자열 메소드입니다.
new_str = "\n".join(["fore", "aft", "starboard", "port"])
print(new_star)

>>> fore
    aft
    starboard
    port
  • 위의 예시에서 문자열 "\n"을 구분자로 사용하기 때문에 각 요소들 사이에 줄바꿈이 있습니다.
  • .join을 사용할 때 다른 문자열도 구분자로 사용할 수 있습니다.
  • 하이픈(-)을 사용해보겠습니다.
name = "-".join(["Garcia", "O'Kelly", "Davis"])
print(name)

>>> Garcia-O'Kelly-Davis
  • 반드시 결합하는 리스트에 있는 모든 항목들을 쉼표(,)로 구분해야 합니다.

 

7) append 메소드

  • 요소를 리스트 끝부분에 추가합니다.
letters = ['a', 'b', 'c', 'd']
letters.append('z')
print(letters)

>>> ['a', 'b', 'c', 'd', 'z']

 

2. 함수

1) len()

  • 리스트 안에 있는 요소의 개수를 리턴합니다.

2) max()

  • 리스트에 있는 가장 큰 요소를 리턴합니다. 
  • 가장 큰 요소를 결정하는 방법은 리스트에 있는 객체의 유형에 따라 다릅니다. 
  • 숫자로 된 리스트 안에서 최대 요소는 가장 큰 숫자입니다. 
  • 문자열로 된 리스트에서 가장 큰 요소는 리스트를 알파벳 순서로 정렬했을 때 마지막에 나오는 요소입니다.
  • max() 함수는 비교할 수 없는 다른 유형의 요소들이 포함된 리스트에는 정의되지 않습니다.

3) min()

  • 리스트에 있는 가장 작은 요소를 리턴합니다. 
  • min은 리스트의 가장 큰 요소를 리턴하는 max와 반대입니다.
a = [1, 5, 8]
b = [2, 6, 9, 10]
c = [100, 200]

print(max([len(a), len(b), len(c)]))
print(min([len(a), len(b), len(c)]))

>>> 4, 2

 

4) sorted() sort 메소드와 다름

  • 리스트를 변경하지 않으면서(sort와 차이) 가장 작은 것부터 가장 큰 순서로 리스트의 사본을 리턴합니다. 
  • 역시 문자열 객체인 경우에는 가장 작은 것부터 가장 큰 순서란 알파벳 순서 입니다.
names = ["Carol", "Albert", "Ben", "Donna"]
print(" & ".join(sorted(names)))

>>> Albert & Ben & Carol & Donna

 

names = ["Carol", "Albert", "Ben", "Donna"]
names.append("Eugenia")
print(sorted(names))

>>> ["Albert", "Ben", "Carol", "Donna", "Eugenia"]

 

728x90
반응형