코린이 성장일기

[python]자료형 - List 본문

programming/파이썬

[python]자료형 - List

JJouni 2022. 12. 23. 17:50

3.  List ([ ])

여러가지 정보(데이터)가 관리하기 쉽도록 순서를 정해서 나열된 것이다. 비어있는 것, 숫자, 문자 모든 데이터가 나열되어 저장될 수 있다. 

>>> a = []
#비어있는 리스트는 a = list() 로도 만들 수 있다.
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]

 

각 요소는 문자열과 동일하게 인덱싱을 적용할 수 있다. 이중, 삼중 리스트에서 인덱싱도 가능하다. 문자열과 동일하게 슬라이싱도 가능.

예시 :
b[0] = 1
c[2] = 'too'
e[-1][1] = 'is'

 

#1  리스트 연산

리스트 연산에서는 리스트 안의 타입이 같아야 TypeError가 발생하지 않는다.


  • 더하기(+)
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]

 

  • 곱하기(*)
>>> a = [1, 2]
>>> a * 3
[1, 2, 1, 2, 1, 2]

 

  • 길이구하기(len())
>>> a = [1, 2, 3]
>>> len(a)
3

 

#2  리스트 수정과 삭제

인덱싱을 통해 검색, 접근, 수정, del 함수를 통해 삭제가 가능하다


  • 수정하기
>>> a = [1, 2, 3]
>>> a[0] = -1
>>> a
[-1, 2, 3]
  • 삭제하기
>>> a = [1, 2, 3, 4, 5]
>>> del a[2:]
>>> a
[1, 2]

 

 

#3 리스트 관련 함수

변수 이름 뒤에 '.'를 붙여서 여러가지 관련 함수를 사용할 수 있다.


  • list.append(x) : 리스트의 끝에 요소(x) 추가
>>> a = [1, 2, 3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

 

  • list.insert(a, b)  : 특정 위치(a: index)에 요소(b) 추가
>>> a = [1, 2, 3]
>>> a.insert(0, 4)
>>> a
[4, 1, 2, 3]

 

  • list.remove(x) : 특정 요소(x) 제거  
>>> a = [1, 2, 3, 1, 3]
>>> a.remove(3)
>>> a
[1, 2, 1, 3]

- 여러개 있을 경우, 맨 처음 값 제거

- 없을 경우 에러

 

  • list.pop() : 요소 끄집어내기
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]

- 맨 뒤에 있는 값은 사라지고, 그 값을 반환함

- 특정 요소를 반환하면서 삭제하고자 하면, 인덱스 번호로 사용할 수 있다. (예) a.pop(1)은 a[1]의 값을 끄집어내 리턴하고 삭제한다.

 

  •  list.extend(list2) : 리스트에 list2를 연결(확장)
>>> a = [1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b = [6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

 

  • list.sort() : 정렬 
>>> a = [7, 1, 0]
>>> a.sort()
>>> a
[0, 1, 7]

- list 내부의 자료형이 통일되어 있어야 함.

- sort는 원본 데이터를 정렬하기 때문에 리턴값이 없다. 리턴값을 원할 경우, sorted()함수를 사용해야 함.

- 기본적으로 오름차순으로 정렬, 내림차순으로 정렬하고자 할 때는 reverse옵션을 사용해야 한다. (예: 내림차순 정렬 - list.sort(reverse=True))

- 알파벳은 대문자~소문자 순으로 정렬된다 : 아스키코드 값에 대응하여 정렬(A=65, a=97)

 

  • list.count(x) : 리스트에 요소 x의 개수 세기
>>> a = [1,1,3,1,2]
>>> a.count(1)
3

 

  • list.index(x) : x의 위치(인덱스) 값 반환
>>> a = [1,2,3,4,5]
>>> a.index(4)
3
>>> a.index(1)
0

 

  • list.reverse() : 뒤집기
>>> a = [100, 200, 300]
>>> a.reverse()
[300, 200, 100]

 

  • list.copy() : 리스트 복사
>>> a = [10, 20, 30]
>>> b = a.copy()
>>> b
[10, 20, 30]

- b = a를 하면, 주소값이 동일하게 복사 되어 둘 중 하나를 변경하면 둘 다 변경된다. 

- b = a.copy()를 사용하면 주소값이 변경되어 요소는 같지만 아예 다른 리스트로 사용할 수 있다.

 

 

출처 : 점프 투 파이선(wikidocs.net/14), https://blockdmask.tistory.com/425

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

[python] Pandas - loc, iloc, map, applymap, apply  (0) 2023.01.19
[python]자료형- 숫자형, 문자열  (0) 2022.12.23