본문 바로가기

PYTHON/혼공파

[혼공챌린지] 혼공파 3주차 파이썬 기본미션, 선택미션

728x90

벌써 셋째주! 이번 주는 리스트, 딕셔너리, 범위 자료형 이해한 거 정리하기

 

리스트란?

여러가지 자료를 저장할 수 있는 자료이다!

 

형태는 [ 요소, 요소, 요소, ... ] 이런 식으로 생겼다.

이런 식

다른 언어에서는 자료형이 다르면 리스트에 쓸 수 없었던 것 같은데 (아닌가?) 파이썬은 다른 자료형인 요소들을 하나의 리스트에 쓸 수 있다.

코드
실행 결과

대괄호 [] 안에 들어간 숫자가 인덱스이다.

리스트의 인덱스는 0부터 시작한다.

 

코드
실행 결과

인덱스를 음수로 해서 리스트의 뒤에서부터 선택할 수 있다.

187번째 줄 보면 인덱스가 -7인데 이때 IndexError가 나타난다. 리스트의 길이를 넘어가는 요소를 선택하려고 하면 나타난다. 요소가 존재하지 않는 위치에서 요소를 꺼내려고 해서 나타나는 에러이다.

 

코드
실행 결과

리스트는 리스트 안에 리스트를 사용할 수 있고 리스트 접근 연산자를 이중으로 사용할 수 있다.

180번째 줄을 보면 3번째에 있는 "문자열" 요소의 0번째 요소에 접근하는 것이다.

그래서 "문자열"의 "문"이 출력되는 것이다.

코드
실행결과

리스트는 연산자도 사용할 수 있는데 +, *, len() 세 가지이다

186줄) 먼저 +는 리스트를 연결하는 것이다. 더하기가 아니라 연결!

+를 하고 출력해보면 하나의 리스트처럼 보이는 것이다.

 

187줄) *는 반복이다. list_a를 3번 반복한 리스트가 되는 것이다.

188줄) len( )은 요소의 개수를 세어준다. list_a의 요소는 1, 2, 3으로 총 3개가 있으니 결과로 3이 출력되는 것이다.

 

리스트에 요소를 추가할 수 있다!

append( ) 함수는 리스트명.append(요소) 형식으로 사용한다!

190줄) list_a에 요소 4를 추가하는 줄이다. 결과를 보면 list_a의 마지막 자리에 4가 추가된 것을 확인할 수 있다.

 

insert( ) 함수는 리스트명.insert(위치, 요소) 형식으로 사용한다!

192줄) 2번 위치에 7을 추가하겠다는 의미이다. 원래 있던 요소는 뒤로 밀린다. 그래서 [4, 5, 7, 6]으로 출력된 결과를 확인할 수 있다.

 

이상하게도 visual studio code에서 print("list_a.append(4) = "list_a.append(4)) 이렇게 써보니 결과가 None이라고 출력되었다. print("list_b.insert(2, 7) = "list_b.insert(27))의 결과도 None이라고 출력된다.

함수라 그런 것인가.. 추측되지만... 잘 모르겠다!

 

append( )와 insert( )함수는 리스트에 요소 하나를 추가하는데 여러 개를 추가하고 싶으면  extend( )를 사용하면 된다.

코드
실행 결과

extend( )함수를 써서 동시에 4, 5, 6 요소 3개가 list_a에 추가되었다.

 

리스트의 특정 위치의 요소를 제거하려면 del과 pop을 쓰면 된다.

del 리스트명[인덱스]            리스트명.pop(인덱스)

 

코드
실행 결과

204줄) 리스트의 1번째 요소가 제거한다. list_a의 1번째 요소인 1이 제거되었다

207줄) 리스트의 2번째 요소를 제거한다. del로 list_a의 요소가 0, 2, 3, 4, 5가 되었다. 이 리스트에서 2번째 요소인 3이 제거되는 것이다.

 

이번에는 값으로 제거하는 함수인 리스트.remove(값) 을 사용한다.

코드

211줄) remove함수로 2를 제거한다. 그러면 리스트의 요소 2가 제거되었다. 만약 2가 여러 개 있었으면 맨 처음 나오는 거 하나만 제거될 것이다.

 

214줄) clear( )로 리스트의 모든 요소를 제거한다. 결과를 보면 []이라고 출력되는데 이는 요소가 모두 제거되었다는 의미이다.

 

 

특정값이 리스트 내부에 있는지 확인 할 수 있는 in / not in 연산자가 있다

값 in 리스트

코드
실행 결과

boolean 형식으로 참이면 True 거짓이면 False가 출력된다.

 

 

for 반복문

for 반복자 in 반복할 수 있는 것:

    코드

 

코드
실행 결과

반복문을 이용해 리스트의 요소를 차례로 출력할 수 있다. 자료형에 상관 없이 반복문에 적용이 가능하다!

 

 

딕셔너리

딕셔너리는 키를 기반으로 값을 저장하는 것이다.

변수 = { 

    키: 값,

    키: 값,

    . . .    

    키: 값 

}            

ㅋㅋㅋ저자가 마블 팬인가부다. 읽으면서 넘 웃겼음 블랙위도우 보셨나요 저자님

요소에 접근하는 방법은 dic["키 값"] 으로 하면 된다

 

딕셔너리에 요소 추가하기 / 요소 제거하기

코드
실행 결과

244~246줄) 빈 딕셔너리에 요소를 추가한다.

250줄) 딕셔너리의 name 요소를 제거한다.

 

범위 자료형 range

매개변수에 숫자를 한 개 넣는 법 range(A)
매개변수에 숫자를 두 개 넣는 법 range(A, B)
매개변수에 숫자를 세 개 넣는 법 range(A, B, C)
범위와 함께 for 반복문 사용 for 숫자 변수 in 범위:
     코드

코드
결과

253줄) i를 5부터 10-1까지의 범위를 만든다

257줄) i를 0부터 10-1까지 3씩 증가시키는 범위를 만든다

 

 

 

선택 미션

157p 1번 풀기

 

728x90