2장 : 파이썬 프로그래밍의 기초, 자료형(리스트, 튜플)

Kiyong Lee·2021년 4월 7일
0

파이썬

목록 보기
3/21
post-custom-banner

2-3 리스트 자료형

리스트 : 순서가 있는 수정가능한 객체의 집합

리스트 인덱싱&슬라이싱

인덱싱&슬라이싱은 어제 문자열에서 했으니, 그 외 적인 걸 설명하자면

인덱싱

a=['1','a',['x','y']]가 있을 때 x만 추출하고 싶다면?

일단 a[2] = ['x','y'] 데 여기의 0번째인 x를 빼내야 하니까

이차원 행렬 형태의 a[2][0]이 된다.

슬라이싱

사실 슬라이싱도 문자열과 똑같다

a[x:y]라고 하면 x이상 y미만

리스트 수정과 삭제

수정

a[x]와 a[x:x+1]을 수정하는 것의 차이가 있는데, 예를 들어

a=[1,2,4]이고 a[1]을 ['a','b','c']로 바꾼다면?

2 -> ['a','b','c']가 되어 a=[1,['a','b','c'],4]가 된다

근데, a[1]이 아닌 a[1:2]라고 쓴다면 1과2사이에 값을 'a','b','c'로 바꾼다는 뜻이어서

a=[1,'a','b','c',4]가 된다

내 방식으로 이해하자면 특정 위치를 지정하는 건 특정 값을 집어넣겠다는 의미로 그 자체가 들어가고, 구간을 정하는 건 리스트를 대체하기 때문에 []가 안들어간다.. 라고 해야겠다

삭제

del a[x]를 이용한다

만약 범위보다 큰 수를 x에 넣으면, out of range 오류 발생

+ 객체란 파이썬에서 사용되는 모든 자료형

리스트 관련 함수들

append

a.append(?)를 하면 리스트 맨 마지막에 ? 추가

sort

말그대로 오름차순 정렬해주는거다

reverse

말그대로 뒤집음

index

a.index(?)라고 하면 ?의 위치값을 리턴한다
?가 a에 없다면 인덱스에 존재하지 않는다고 에러 남

insert

a.insert(x,y)라고 하면 x위치에 y를 삽입하겠다는 뜻이다
위치는 0부터 시작이니 늘 조심

remove

a.remove(?)라고 하면 맨 첫 번째 나오는 ?를 삭제한다
?가 a에 없으면 not in list라고 친절하게 문구가 뜬다

pop

a.pop()는 a의 맨 마지막 요소를 돌려주고 삭제한다

a.pop(x)는 x번째 요소를 돌려주고 삭제
x가 리스트 길이보다 크다면 out of range 오류남

count

a.count(x)라고 하면 x가 몇개 있는지 개수를 세준다
x가 리스트에 없어도 오류는 안나고 0으로 나옴

extend

a.extend(?)하면 리스트 a와 리스트 ?를 합친다는 뜻이다

a+=?(a=a+?)와 똑같다

2-4 튜플

튜플이란? 불변한 순서가 있는 객체의 집합(값 변경 불가)
리스트와 비슷하지만 두 가지 차이점이 있다.

  1. 리스트는 []로, 튜플은 ()로 둘러싼다
  2. 리스트와 달리 튜플은 수정, 삭제, 생성이 불가능하다

그래서 값이 변하면 안될때는 투플을 사용한다

그리고 튜플은 a=(1,) 같이 하나의 요소만 가질 떄는 뒤에 콤마가 있어야 한다는 것이다

인덱싱&슬라이싱

인덱싱, 슬라이싱은 문자열, 리스트에서 한 것과 같다과 같다

슬라이싱에서

a=(1,2,3)
print(a[1])
print(a[1:2])

라고하면 첫 번째는 2가 나오고, 두 번쨰는 (2,)가 나온다
첫 번쨰는 특정 위치를 찍어서 2가 나오는 거고, 두 번째는 1과 2사이를 정했으므로 (2,)가 나오는 것이다

여기까지가 2-3, 2-4이다

정리하고 내일 출근길에 봐야지

profile
ISTJ인 K-개발자
post-custom-banner

0개의 댓글