나 개발자 진짜 되냐?

2일차 파이썬 프로그래밍 기초_리스트편 본문

파이썬을 시작했어요!

2일차 파이썬 프로그래밍 기초_리스트편

Snow Rabbit 2022. 12. 13. 16:43

 

아니 하루가 금방가유....

 

숫자 모음, 문자 모음, 집합 같은 것을 문자열로 표현하기 쉽지 않아 생긴 LIST

 

LIST

 

리스트를 표현할 땐

hello = [ 2, 4, 6, 8 ]

대괄호와 요소를 쉼표로 구분

 

리스트명 = [요소 1, 요소 2, 요소 3,...]

 

리스트 안에 아무것도 안 쓸 수도 있습니다!

 

문자열 숫자열 같이 쓸수도 있고,

리스트 안에 리스트도 넣을 수 있슴메

 

a = ['happy' , ['marry', 'christmas']]

 

리스트 인덱싱

 

리스트에도 인덱싱과 슬라이싱이 있는데

인덱싱부터....

 

a = [ 2, 8, 22 ]

a[0] 은? 2가 된다.

 

a[0] + a[2] = 24가 된다.

a[-1] 는 뒤에서 첫 번째인 22 가 된다.

 

 

a = [2, 8, 22, ['c', 'h', 'a']]

자 이렇게 리스트 안에 리스트가 있을 때

a[-1] 은 뭘까?!

바로 ['c', 'h', 'a'] 이 자체가 온다.

a[3]도 값은 동일하다. 마지막 요소 값을 리스트 전체로 본 것이다.

 

저 ['c', 'h', 'a'] 안에서 'c'만 꺼낼방법은?!

 

a[-1][0]

a의 뒤에서 첫 번째 리스트에서 첫 번째를 나타내라는 뜻이다.

 

삼중은 잘 안 나온다니깐 킼키.. 사진으로 대체한다 킼키키키ㅣ..

 

리스트의 슬라이싱

 

슬라이싱 저번에 적어두었던 삭둑..삭둑 자르는 것

 

리스트는 [0:0] 이렇게 콜론을 사용한다.

 

a = [2, 4, 6, 8, 10] 

a[0:2] 이렇게 쓰면?  [2, 4]가 나오게 된다

전에도 말했듯이 여기서 2는 2 미만이기 때문에 1까지 된다!!

 

a[:2], a[2:]이것도 어제 썼던거랑 동일

a[:2]      →     [2, 4]

a[2:]      →     [6, 8, 10]

 

중첩 리스트로 슬라이싱 해보자.

 

a = [2, 8, 22, ['c', 'h', 'a'], 28, 88]

a[2:5]      →     [22, ['c', 'h', 'a'], 28]

 

a[3][:2]      →     ['c', 'h'] 

 

가 되는 것이다.

오우 쉽지않슴메..

 

 

리스트 연산하기

리스트는 똑똑해서 연산도 할 수 있어요!

 

숫자를 더하는 게 아니라 리스트 두 개를 하나의 리스트로 합친다는 뜻이지요

 

a = [1,3,5]

b = [2,4,6]

 

a+b = [1,2,3,4,5,6]

 

리스트를 반복하려면? *곱하기를 사용한다.

 

a = [2,4,6]

 

a*3 = [2,4,6,2,4,6,2,4,6]

 

리스트 길이 구하기

 

len()을 사용하던 거 잊지 않았지요?!

a = [2,4,6] 

len(a)      →     3 이 나오게 된다. 

 

 

 

리스트에서 실수하는 유형이 있다길래 찾아왔어요!

 

a  = [ 1, 2, 3 ]

a[2] + "hi"라고 하면 어떻게 나올까?!

3hi가 나올 거 같지만.. 형 오류라고 나온다고 한다!

리스트 안에 들어가 있는 건 숫자고 뒤에는 문자열이어서 그렇다

숫자와 문자를 같이 더하고 싶다면?!

이 숫자를 문자열로 만들면 된다!!

 

문자열로 만드는 함수를 str()이라고 하는데 이걸 사용해서!

 

str(a[2]) + "hi" 하면 3hi가 나온다고 한다!

 

 

 

리스트 수정 & 삭제

 

값을 수정하는 방법은

그냥 위에 덮어쓴다고 생각하면 좋다.

 

a= [2, 4, 6]

a[2] = 8

 이렇게 덮어씌워주면 된다.

 

삭제는 del()이라는 함수를 사용해준다.

a= [2, 4, 8]

del a[1]  해주면 a에는 2와 8만 남게 된다.

 

삭제와 슬라이싱을 곁들여

 

del a[:2] 해주면 8만 남게 된다.

 

혼동 하기 쉬운 복사

리스트를 고대로 복사하는 방법은 두가지가 있다.

 

1. 복사 하고 나서 a가 바뀔때마다 b도 같이 바뀌는

       a = [ 1, 2, 3 ]       b = a   이렇게 넣어주는 방법이 있다.

 

2. 복사하고나서 a가 바뀔때 b는 안바뀌는

              copy()를 사용하는 것이다.

       a = [ 1, 2, 3 ]

       b = copy(a)     or     b = a.copy()

 

 

 


★ 리스트 관련 함수

리스트 관련 함수들을 알아보자!

 

리스트 요소 추가  ===> append

첨부하는 이 친구는 리스트에 추가해주는 친구이다.

 

a= [2, 4, 6]

append(8) 해주면

a= [2, 4, 6, 8] 이 나오게 된다.

 

append에는 리스트 자체도 추가해줄 수 있다.

 

a= [2, 4, 6]

append([8,10])하면 맨뒤에 두 숫자가 포함되어있게 된다.

 

리스트 뒤집기 ===> reverse

역순으로 뒤집는다. 정렬해주는 것이 아니라 그냥 뒤집기만 해준다.

 

a.reverse()

 

리스트 정렬 ===> sort  

순서대로 정리도 할 수 있다.

숫자의 순서가 섞여있다면 차례대로 , 오른차순으로 정리해준다

알파벳도 마찬가지이다.

 

a.sort()

 

인덱스 반환 ===> index

위치에 있는 값을 적어주면 그 위치를 반환해주는 역할을 한다.

 

a= [2,4,8]

a.index(2)는 0이 되는 것이다. 

만약 괄호에 리스트에 없는 숫자를 넣게 되면 오류가 발생한다.

 

리스트 요소 삽입 ===> insert

 

a.insert(x, y)로 사용되며

x : 리스트의 x번째 위치

y : x번째에 y를 삽입하라는 뜻

 

a = [2,4,8]       →     a.insert(2,6) 이렇게 사용한다.

 

리스트 요소 제거  ===>  remove

a.remove(x)는 리스트에 첫 번째로 나오는 x 값을 삭제한다.

 

쉽게 예시를 만들어보자

a = [ 2, 4, 6, 8, 4, 8, 6 ]

a.remove (6)      →      a = [ 2, 4, 8, 4, 8, 6 ] 이 된다.

 

리스트 요소 꺼내기 ===> pop

팝팝 이 친구는 맨 마지막 요소를 꺼내서 삭제한다.

 

a= [2, 4, 8]

a.pop() 하면 8이 된다.

그리고 다시 a를 확인해보면 2랑 4만 남게 된다.

 

pop 괄호에 숫자를 넣게 되면 그 숫자 번째 요소를 리턴하고 지우게 된다.

a.pop(1) 하면 4가 된다.

확인해보면 2와 8이 남는다. 

 

리스트에 포함된 요소 x의 개수 세기 ===> count 

count(x)는 x가 리스트 안에 몇 개 있는지 세어서 리턴해준다.

a = [ 2, 4, 6, 8, 4, 8, 6 ]

a.count(8)       →      2가 된다.

 

리스트 확장 ===> extend

extend(x)에서 x에는 꼭 리스트만 넣을 수 있다.

 

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]

 

 

* a.extend([4,5]) 는 a+=[4,5]와 같다 

* a += [4,5]는 a = a+ [4,5]와 같다.