카테고리 없음

[혼공파]3주차_리스트, 딕셔너리, 범위 자료형

mystory5639 2025. 1. 27. 23:31

- 3주차 미션:

리스트, 딕셔너리, 범위 자료형에 대해 이해한 내용을 바탕으로 포스팅하기

 

리스트: 인덱스를 기반으로 값을 저장하는 것

- 개념: 여러 독립적인 자료를 모아서 사용할 수 있게 해주는 자료

- 사용법: 대괄호[] 내부에 여러 종류의 자료를 넣어 선언. 선언한 리스트를 출력하면 내부의 자료를 모두 출력한다.

가상의 리스트 list_a를 선언할 때,
list_a[-1]   #뒤에서부터 요소를 선택

list_a[3][0]   #접근 연산자를 이중으로 사용할 수 있음(3번째 자료의 0번째 자료 출력)

list_a[1][1]   #리스트 안에 리스트를 사용할 수도 있음

*리스트 인덱스는 '0부터' 세기 시작한다. 존재하지 않는 위치를 지정하면 IndexError가 발생하니 유의할 것.

 

- 연산: 연결(+), 반복(*), len()

연결+: print(list_a + list_b)   #두 리스트의 값이 모두 출력됨 >>>[1,2,3,4,5,6]

반복*: print(list_a*3)   #리스트 값이 세 번 출력됨 >>>[1,2,3,1,2,3,1,2,3]

len(): print(len(list_a))   #리스트의 길이가 출력됨 >>> 3

 

- 요소 추가랑 제거: append(), insert(),extend()

리스트명.append(요소)   #리스트 맨 뒤에 요소 추가됨

리스트명.insert(위치, 요소)   #위치 부분에 요소 추가됨

리스트명.extend([요소들])   #extend() 함수는 매개변수로 리스트를 입력한다. 한 번에 여러 개의 요소 추가가 가능하다. 원래 리스트 뒤에 새로운 리스트의 요소들을 모두 추가해 준다.

 

- 연결 연산자와 요소 추가의 차이(+와 extend())

연결 연산자는 비파괴적이다(원본 리스트에 어떤 영향도 주지 않는다)

extend() 함수로 요소를 추가하는 건 파괴적이다(리스트에 요소를 직접 추가해 실제로 변형이 일어난다)

 

- 요소 제거하기

del 리스트명[인덱스]   #인덱스 위치에 있는 요소를 제거

리스트명.pop(인덱스)   #인덱스 위치에 있는 요소를 제거. 단, 매개변수를 입력하지 않으면 -1이 들어가는 것으로 취급해서 마지막 요소를 제거

 

- 리스트 슬라이싱

리스트[시작_인덱스:끝_인덱스:단계]   #단계는 지정된 숫자만큼 건너뛰거나(2 >>> [1,3,5]) 반대로 출력된다(-1 >>> [5,4,3,2,1])

 

- 모두 제거: 리스트.clear()

 

- 리스트 내부 확인: 값 in(or not in) 리스트

 

딕셔너리: 키를 기반으로 값을 저장하는 것, {}로 변수 선언, 가리키는 위치가 키가 됨.

변수 = { 키:값, 키:값 ... , 키:값}

dict_a = {"name" : "어벤져스 엔드게임", "type" : 히어로 무비"}

*요소 접근 시에는 [] 사용.

dict_a["name"] >>> '어벤져스 엔드게임'

*딕셔너리와 리스트 또한 하나의 자료이므로, 값으로 리스트와 딕셔너리를 넣을 수도 있다.

 

범위: 조건에 따라 반복하는 경우에 사용. range() 함수를 사용하며, 매개변수 개수(1~3)에 따라 활용도가 달라진다.

매개변수 하나: list(range(5)) >>>[0,1,2,3,4]   #0부터 5-1까지

매개변수 둘: list(range(0,5)) >>>[0,1,2,3,4]   #0부터 5-1까지

매개변수 셋: list{range(0, 10, 3)) >>>[0,3,6,9]   #0부터 3씩 증가하면서 10-1까지

 

- 추가 숙제:

p.213 1번 문제 답 쓰고 인증

list_a.extend(list_a)   답: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]

list_a.append(10)   답: [0, 1, 2, 3, 4, 5, 6, 7, 10]

list_a.insert(3, 0)   답: [0, 1, 2, 0, 3, 4, 5, 6, 7]

list_a.remove(3)   답: [0, 1, 2, 4, 5, 6, 7]   #remove()는 해당하는 '값'으로 3을 지운 것

list_a.pop(3)   답: [0, 1, 2, 4, 5, 6, 7]   #pop()은 해당하는 '위치'로써 3자리에 있는 값을 지운 것

list_a.clear()   답: []