본문 바로가기

파이썬

파이썬 리스트(List)

리스트(List)

1. 리스트의 형식

- list_name = [요소1, 요소2, ...]

- 공백 리스트 생성: lst = []

 

 

2. 리스트가 가진 매소드

1) insert(): 지정된 위치에 요소 추가

 ex) list_name.insert(1,"딩록장") → list_name이란 리스트의 1번방에 "딩록장"이 추가 됨

                                                        (원래 1번에 있던 요소는 2번으로 밀려남(뒤로 하나씩 이동))

 

2) index(): 특정 항목이 리스트의 어디에 있는지 탐색

 ex) list_name.index("딩록장") → "딩록장"이 있는 인덱스 번호 출력

 

3) pop(): 항목이 저장된 위치를 아는 경우에 사용, 해당 요소를 추출함(반환O)

 ex) list_name.pop(1) → 1번째 항목을 추출해(삭제) 반환해 줌

       list_name.pop() → 리스트의 맨 뒤([-1]) 요소를 추출해 줌

 

4) remove(): 항목의 값만을 아는 경우에 사용, 지정된 값 삭제(반환X)

 ex) list_name.remove("딩록장") → "딩록장" 리스트에서 삭제

 

5) sort(): 오름차순으로 리스트를 정렬함(↔내림차순: .sort(reverse = True)) ▶ 원본 변경 O

 ex) list_name.sort()

 

6) sorted(): 크기순으로 정렬된 새로운 리스트 반환 ▶ 원본 변경 X

 ex) sorted(list_name)

 

7) copy(): 리스트의 복사본을 반환

 ex) lst_name.copy()

 

 

3. 리스트가 사용 가능한 내장 함수

1) cmp(): 첫 번째 리스트가 두 번째보다 크면 1 반환

 

2) all(): 리스트의 모든 요소가 참이면 참을 반환

 

3) any(): 리스트 안의 한 요소라도 참이면 참을 반환

 

 

4. 기타 사용 연산

1) zip() : 두 개 이상의 리스트를 한 번에 제공할 수 있음

 ex) for a, in zip(list1, list2):

 

2) random.choice(): 리스트 안의 항목 랜덤 선택

 ex) random.choice(list_name)

 

 

5. 리스트 합병과 복제, 비교

1) 리스트 합병: +

 ex) lst3 = lst1 + lst2

      >> lst1 = [1,2]   /    lst2 = [3,4]

      >> lst3 = [1,2,3,4]

 

2) 리스트 복제: *

 ex) lst = [1,2,3,4] * 2

      >> lst = [1,2,3,4,1,2,3,4]

 

3) 리스트 비교: ==, !=, <, >

 

 

6. 리스트 복사

1) 얕은 복사: 리스트 자체가 복사되진 않고 lst1과 lst2가 동일한 리스트를 가르키는 것 → '='

  ex) lst1 = lst2              ※ lst2를 바꾸면 lst1도 같이 바뀜(왜냐? 동일한 리스트를 가르키니까)

 

2) 깊은 복사: 새로운 리스트를 생성하는 것 → list() / [:]

  ex) lst1 = [1,2,3,4,5,6]  

        lst2 = list(lst1)   or   lst2 = lst[:]

 

 

7. 리스트 추가

1) append() 메소드 이용

2) '+=' 연사자 이용

 

 

8. 슬라이싱

슬라이싱은 원본 리스트는 변경하지 않고, 새로운 리스트를 생성

형식: 리스트[start : stop : step]

 

1) 전체 >> [:]

2)  [::n] >>step만큼 건너뛰어서 출력

 ex) lst = [1,2,3,4,5,6]

       lst[::2]  >> [1,3,5]

       lst[::-1] >> [6,5,4,3,2,1]  ※ 거꾸로 출력

       lst[::-2] >> [6,4,2]  ※ 거꾸로 2씩 건너뛰어서

 

3) [:n] >> 양수: n-1까지만 출력 // 음수: -1부터 n까지의 요소를 빼고 출력

  ex) [:3] > 0~2까지 출력  /  [:-3] -1 ~ -3까지 요소를 뺀 나머지 출력

 

4) [n:] >> 양수: n 부터 출력 // 음수: -1부터 n까지 출력

 ex) [2:] > 2부터 끝까지 출력    / [-2:] > -1 ~ -2까지 출력

 

5) del lst[-1]  >> 마지막 항목 삭제

 

6) lst[:2] + lst[2:] = lst  → 항상 이 식은 성립됨

 

7)[start:stop] >> 양수: start부터 stop-1까지,  음수: start 부터 stop-1까지(출력순 거꾸로 아님!!)

  ex) alist = [10,20,30,40,50]  /  alist[-3:-1] >> [30,40] (-3 부터 -2까지 요소만 출력됨 [40,30] XXX!!!)

 

 

8. 슬라이싱 응용

1) lst[:] = []  >> 리스트의 모든 요소 삭제 

2) lst[0:3] = ['딩','록','장']  >> 리스트의 일부 값 변경 → 인덱스 0~2를 '딩','록','장'으로 바꿈

3) lst[1:] = []  >> 첫번째 요소(index 0) 빼고 모두 삭제:  → 인덱스 0을 제외한 모든 값 공백처리(삭제)

 

 

9. 리스트 함축

형식: 새로운 리스트 = [수식(리스트에 들어갈 값) for 변수 in 리스트 if 조건]

※ 만약 if문의 else 값이 따로 있다면 if문이 for문보다 앞에 온다

   (그거 아니면 순차적으로 쓰면 될 듯)

 

'파이썬' 카테고리의 다른 글

파이썬 객체와 클래스  (0) 2024.05.21
파이썬 자료구조(tuple, set, dictionary)  (0) 2024.05.19