본문 바로가기
Python

09. 파이썬 리스트(list) 특징

by To올라운더 2023. 6. 26.
반응형

[1] 리스트(list) 특징
리스트란 대괄호로 표기하는 자료형식으로 
매번 강조하는 여러자료형의 특징을 비교해보면

구  분 튜플(tuple) 리스트(list) 집합(set) 딕셔너리(dictionary)
공통 사항 1개 이상의 데이터(값)들을 관리(저장)할 때 사용
형  태 소괄호 - (  ) 대괄호 - [  ] 중괄호 + 콤마 - { , } 중괄호 - { Key : Value}
순서(Index) O O X X
중복 허용 O O X (Value) X (Key)
수정 가능 X O O O

리스트는 순서가 있고 값의 중복의 허용하며, 수정이 가능한 자료유형이다.

튜플과 비교시 수정이 가능하다는게 가장 큰 차이인데,

실제 프로그램 동작 시, 항목을 추가하거나 제거하는 동작을 위해

빈번히 사용하게 되는 자료 유형이다.

 

1. 리스트 만들기(선언)

 - 리스트는 대괄호'[ ])' 를 이용하여 만들며, 여러가지 요소(자료 유형에 구분 없이)를 추가 할 수 있다.

list1 = [] # 비어 있는 list 선언
list2 = list() # 비어 있는 리스트를 list로 선언할 수 도 있다.
list3 = [1,2,3]
list4 = [4,5,(11,12), ['a','b','c']] # 숫자형, 문자형, 리스트 등 모두 요소로 입력 가능
print(type(list1)) 
print(list1)
print(type(list2))
print(list2)
print(type(list3))
print(list3)
print(type(list4))
print(list4)

 

2. 인덱싱, 슬라이싱

  - 문자열과 동일한 방식으로 인덱싱과 슬라이싱이 가능하다.

구분 4 5 (11,12) ['a', 'b', 'c']
인덱싱 0 1 2 3
-4 -3 -2 -1
list1 = [4,5,(11,12), ['a','b','c']]
print(list1[0])
print(list1[3])
print(list1[1:4])

- list 안에 요소로 list가 추가된 형태의 반복적인 리스트의 값도 인덱싱 가능하다.

list1 = [4,5,(11,12), ['a','b','c']]
print(list1[3]) # list 요소 출력
print(list1[3][2]) # 이중, 삼중 형태의 반복적인 리스트의 인덱싱

 

3. 리스트의 요소 수정(추가, 삭제)

  - 리스트의 가장 큰 사용처의 이유로 요소를 수정하거나 추가할 수 있다.

  - 위에서 확인된 인덱싱 번호로 특정 위치에 대한 수정 및 추가가 가능하다.

list1 = [4,5,(11,12), ['a','b','c']]
print(list1) # 전체 리스트 출력
list1.append('abc') # append 사용 시 제일 뒤에 추가
print(list1)
list1.pop() # pop으로 제거 시 가장 뒤에 요소가 삭제
print(list1)
list1.insert(2,'가') # 인덱스 2번째 위치에 '가' 요소 추가
print(list1)
list1.index('가') # 요소 값으로 인덱스번호 찾기
print(list1.index('가')) # 방금 추가된 2위치 확인
list1.remove(5) # 요소 값이 5인 요소 삭제
print(list1)
del list1[0] # 인덱스 0번째 요소 삭제
print(list1)

 - 순서 변경 및 정렬

list1 = [4,5,10,7,1]

list1.reverse() # 오름차순, 내림차순에 상관없이 인덱스번호 기준으로 역순서대로 순서변경
print(list1)

list1.sort() # 요소 값의 오름차순으로 정렬, sort(reverse=False) 와 기능 동일
print(list1) # sort() 함수를 사용하면 실제 list 요소의 순서를 변경함

list1.sort(reverse=True) # 요소 값의 내림차순으로 정렬
print(list1)

 

* sort와 sorted 차이

  - sort는 실제 리스트 값의 순서를 변경하고,

    sorted는 원본의 리스트는 수정하지 않고, 정렬된 값으로 새로운 리스트를 생성한다.

list1 = [4,5,10,7,1]

print(list1) # sort 전
list1.sort()
print(list1) # sort 후

list1 = [4,5,10,7,1] # 원본 list1 복구
list2 = sorted(list1) # sorted 적용 후,
print(list1)
print(list2)

- len 과 count

  : 요소의 갯수를 세는 함수로 리스트는 요소 값들의 중복을 허용한다.

  : len은 각 요소의 전체 갯수를 나타내는 함수이며, 

    count 는 특정 요소 값이 몇개가 있는지 확인할 수 있는 함수이다.

  : 주의할 사항으로 전체 요소의 갯수를 확인하는 len값은 1부터 시작하는 것과 달리

    인덱싱 값은 0부터 시작함으로 항상 인덱싱의 마지막 값은 'len()-1' 과 동일하다. 

     * 반복문 등 인덱싱 값 사용시 유의!!

list1 = [4,5,10,5,4,3,5]

print(len(list1)) # 결과 값 7
print(list1.count(5)) # 결과 값 3

 

4. 연산

  1) 덧셈

    : 리스트의 합은 두 리스트의 요소 값을 합한 형태의 리스트로 생성된다.

list1 = [1,2,3]
list2 = [7,8,9]
list3 = list1 + list2
print(list3)

 


  2) 곱셈(*)
    : 리스트의 곱셈은 곱셈이 덧셈을 반복하는 것처럼( 2 * 3 = 2 + 2 + 2) 
      리스트의 곱셈도 각 요소가 반복적으로 추가된다.

list1 = [1,2,3]

list2 = list1 * 3
print(list2)

반응형

'Python' 카테고리의 다른 글

11. 딕셔너리(dictionary) 특징  (0) 2023.06.29
10. 파이썬 집합(set) 특징  (0) 2023.06.27
08. 파이썬 튜플(tuple) 특징  (0) 2023.06.25
07 파이썬 Boolen(참,거짓)  (0) 2023.06.24
venv 가상환경 구성하기 02(모듈 복사)  (0) 2023.06.03