
리스트형
# 파이썬 리스트
# 자료구조에서 중요
# 파이썬 배열 제공X
# 리스트 자료형(순서O, 중복O, 수정O, 삭제O)
리스트 사용법
리스트 선언
리스트 특징
리스트 인덱싱
리스트 슬라이싱
리스트 함수
리스트 삭제
# 선언
a = [] #비어있는 리스트 b = list() #비어있는 리스트 c = [70, 75, 80, 85] #0번~3번 d = [1000, 10000, 'Ace', 'Base', 'Captine'] e = [1000, 10000, ['Ace', 'Base', 'Captine']] #리스트 안에 리스트 f = [21.42, 'foobar', 3, 4, 'bark', False, 3.14159]
# 인덱싱(내가 원하는 데이터를 꺼내오는 과정)
print('d - ', type(d), d) #d - <class 'list'> [1000, 10000, 'Ace', 'Base', 'Captine'] print('d - ', d[1]) #d - 10000 print('d - ', d[0] + d[1] + d[1]) #d - 21000 print('d - ', d[-1]) #d - Captine print('e - ', e[-1][1]) #e - Base 안쪽의 리스트를 선택한 다음 그 안의 1번 인덱스를 선택 print('e - ', list(e[-1][1])) #e - ['B', 'a', 's', 'e']
# 슬라이싱
print('d - ', d[0:3]) #d - [1000, 10000, 'Ace'] print('d - ', d[2:]) #d - ['Ace', 'Base', 'Captine'] print('e - ', e[2][1:3]) #e - ['Base', 'Captine'] 리스트 자체를 슬라이싱해서 리스트를 갖고 왔다.
# 리스트 연산(리스트를 연산하면 리스트가 결과로 나온다.)
print('c + d - ', c + d) #c + d - [70, 75, 80, 85, 1000, 10000, 'Ace', 'Base', 'Captine'] print('c * 3 - ', c * 3) #c * 3 - [70, 75, 80, 85, 70, 75, 80, 85, 70, 75, 80, 85] # print("c[0] + 'hi' - ",c[0] + 'hi') 정수형+문자열이라서 계산 안됨 print("'Test' + c[0] - ", 'Test' + str(c[0])) #'Test' + c[0] - Test70
# 값 비교
print(c == c[:3] + c[3:]) #True
# 같은 id(identity) 값
temp = c print(c == temp) #True print(id(temp)) #140570143319808 print(id(c)) #140570143319808 파이썬의 효욜성 때문에 리스트 역시 하나의 주소값을 공유한다.
# 리스트 수정, 삭제
c[0] = 4 print('c - ', c) #c - [4, 75, 80, 85] c[1:2] = ['a', 'b', 'c'] #슬라이싱을 했을 땐 리스트가 들어가지 않고 원소로 들어간다. print('c - ', c) #c - [4, 'a', 'b', 'c', 80, 85] c[1:2] = [['a', 'b', 'c']] #[[]]을 해줘야 리스트로 들어간다. print('c - ', c) #c - [4, ['a', 'b', 'c'], 'b', 'c', 80, 85] c[1] = ['a', 'b', 'c'] #인덱스를 딱 지정했을 땐 그냥 리스트 자체가 들어간다. print('c - ', c) #c - [4, ['a', 'b', 'c'], 'b', 'c', 80, 85] c[1:3] = [] #삭제를 한 것 print('c - ', c) #c - [4, 'c', 80, 85] del c[3] #삭제 print('c - ', c) #c - [4, 'c', 80]
# 리스트 함수
a = [5, 2, 3, 1, 4] print('a - ', a) #a - [5, 2, 3, 1, 4] a.append(6) #마지막 끝 부분에 데이터를 삽입할 때 쓰는 함수 print('a - ', a) #a - [5, 2, 3, 1, 4, 6] a.sort() #오름차순 정렬 print('a - ', a) #a - [1, 2, 3, 4, 5, 6] a.reverse() #들어있는 데이터를 반대로(reverse) 정렬 print('a - ', a) #a - [6, 5, 4, 3, 2, 1] print('a - ', a.index(3),a[3]) #a - 3 3 인덱스 3번째 값 a.insert(2, 7) #두번째 위치에 7을 넣겠다. print('a - ', a) #a - [6, 5, 7, 4, 3, 2, 1] a.reverse() a.remove(1) #remove함수 제거할 값을 입력 #del a[]은 데이터의 갯수가 많으면 비효율적이다(인덱스 번호를 확실히 알고있어야한다.) #del은 함수가 아니라 예약어. print('a - ', a) #a - [2, 3, 4, 7, 5, 6] print('a - ', a.pop()) #a - 6 print('a - ', a.pop()) #a - 5 print('a - ', a) #a - [2, 3, 4, 7] #pop은 기존의 리스트에서 마지막 index에 해당하는 원소를 가져오고 나머지 원소들로 리스트를 다시 구성하는 것. print('a - ', a.count(4)) #a - 1 내가 찾는 값(4)이 몇 개가 있는가? ex = [8, 9] a.extend(ex) print('a - ', a) #a - [2, 3, 4, 7, 8, 9] #값 추가
# 삭제 remove, pop, del
# 반복문 활용
while a: data = a.pop() print(data) 9 8 7 4 3 2
'Python > Today I learned' 카테고리의 다른 글
TIL#18 데이터타입(자료형)-딕셔너리형 (0) | 2021.05.14 |
---|---|
TIL#17 데이터타입(자료형)-튜플형 (0) | 2021.05.14 |
TIL#15 데이터타입(자료형)-문자형 (0) | 2021.05.14 |
TIL#14 데이터타입(자료형)-숫자형 (0) | 2021.05.14 |
TIL#13 변수 (0) | 2021.05.13 |