Python/개념

03. [Python] 자료형 - 리스트

프로그린 2024. 4. 15. 13:37

리스트 생성

  • 요소 목록을 대괄호([])로 감싸고 각 요소값은 쉼표(,)로 구분
  • 리스트 요소값으로 숫자, 문자열, 리스트, 튜플 등 어떤 자료형 가질 수 있음.
리스트명 = [값1, 값2, 값3, ...]

 

리스트와 문자열의 유사 기능

인덱싱

  • 파이썬에서는 0부터 인덱스 번호를 부여
  • 음수를 사용하여 역순으로 인덱스를 부여
- 리스트에서 0번 인덱스는 첫번째 요소값을 나타내고, -1번 인덱스는 마지막 요소값을 나타냄.
- 문자열에서 0번 인덱스는 첫번째 문자를 나타내고, -1번 인덱스는 마지막 문자를 나타냄
list_a = ['a', 'b', 1, 2, 3]
str_b = 'HELLO'

list_a[0]
>>> 'a'
list_a[-1]
>>> 3

str_b[0]
>>> 'H'
str_b[-1]
>>> 'O'

 

슬라이싱

  • 인덱스 범위를 지정하여 리스트나 문자열의  일부만 가져올 수 있음.
  • 변수명[시작 번호:끝 번호]
  • 끝번호는 포함되지 않음에 주의
list_a[1:3]
>>> ['b', 1]
list_a[:3]
>>> ['a', 'b', 1]
str_b[2:]
>>> 'LLO'
str_b[:]
>>> 'HELLO'

 

연산자를 활용한 합성과 복제

  • + 연산자를 이용한 합성
[1, 2, 3] + ['a', 'b']
>>> [1, 2, 3, 'a', 'b']
'Hi' + 'Hello'
>>> 'HiHello'
  • * 연산자를 이용한 복제
['영', '차'] * 3
>>> ['영', '차', '영', '차', '영', '차']
'Again&' * 0
>>> 'Again&Again&Again&Again&Again&'

 

len 함수의 활용

  • 리스트에 len 함수를 적용하면 리스트에 속한 요소값의 개수를 반환
  • 문자열에 len 함수를 적용하면 문자열의 길이를 반환
len(list_a)
>>> 5
len(str_b)
>>> 5

 

리스트의 수정과 삭제

- 인덱스 활용하여 요소값을 수정하거나 삭제할 수 있음
- 해당 내용은 문자열 자료형에는 적용 불가

list_b = [10, 20, 30, 40]

list_b[1] = 100
list_b
>>> [10, 100, 30, 40]

del list_b[1]
list_b
>>> [10, 30, 40]

 

리스트 관련 함수

함수기능입력(a = [1, 5, 4, 2])출력
append()리스트의 끝에 요소 추가a.append(3)
print(a)
[1, 5, 4, 2, 3]
sort()요소를 순서대로 정렬a.sort()
print(a)
[1, 2, 4, 5]
reverse()역순으로 뒤집기a.reverse()
print(a)
[2, 4, 5, 1]
index()인덱스 반환a.index(5)1
insert(a, b)a번째 위치에 b를 삽입a.insert(2, 3)
print(a)
[1, 5, 3, 4, 2]
remove()요소값 삭제a.remove(4)
print(a)
[1, 5, 2]
pop()리스트의 요소 끄집어 내기a.pop()2
count()리스트에 포함된 요소의 개수 반환a.count(1)1
extend()리스트 확장a.extend([5, 6])
print(a)
[1, 5, 4, 2, 'a', 'b']
remove vs pop
- pop()안을 비워두면 제일 마지막 요소값을 반환하고 리스트에서 해당 값은 제거됨.
- 이와 달리 remove는 함수 적용시 리스트에서 해당 값이 완전히 제거되는 것은 아니며 변경된 내용을 적용하기 위해서는 재할당 과정을 거쳐야 함.
b = ['a', '10', '20', [1, 2, 3]]
b.remove('20')
print(b)
>>> ['a', '10', [1, 2, 3]]

b.pop(0)
>>> 'a'
print(b)
>>> ['10', '20', [1, 2, 3]]
b.pop()
>>> [1, 2, 3]
print(b)
>>> ['10', '20']​

- index, remove를 적용할 대상값이 리스트에 중복되어 있으면 해당하는 값 중 가장 먼저 나오는 값에만 적용됨.
c = [10, 20, 30, 30, 30, 40, 40, 50]
c.index(30)
>>> 2

c.remove(40)
print(c)
>>> [10, 20, 30, 30, 30, 40, 50]​