728x90
반응형
SMALL
오늘 포스팅에서는 파이썬을 활용하여 숫자와 문자의 변형과 list를 관리하는 법에 대하여 알아보도록 하겠습니다.
list 관리를 설명하기 전에 간단하게 숫자와 문자의 변형을 어떻게 하는지에 대하여 알아보도록 하겠습니다.
숫자/문자의 변형 chr(숫자)/ord('알파벳')
print(65)
# JAVA -> print((char)65) 강제 변형 = type casting
print(chr(65)) # chr 함수 사용
print(ord('B'))
list 관리
앞서 언급된 단어 'CRUD'의 의미에 대하여 먼저 설명해드리도록 하겠습니다.
모든 프로그램 언어를 사용하기위해서는 딱 4가지만 기억하고 다룰 줄만 아시면! 기본기는 단단하다고 보시면 됩니다
Create Read Upload Delete 데이터를 어떻게 생성하고, 불러오고, 추가하고, 삭제할 수 있는지 입니다!
이제 list로 데이터를 관리해보도록 하겠습니다~!
CRUD - Create
# list 라는 자료형 자체가 존재 -> [] or {} or ()
a = [10, 20, 30, 40]
print(a) # 출력결과 -> [숫자들] <- list type
b = ['강아지', '호랑이', '코끼리'] # 요소 -> 숫자 문자 다 허용
print(b)
c = [10, '호랑이', 3.14, True] # 서로다른 타입의 항목으로 넣어 맴버들의 설정이 가능 (Only Python)
print(c)
CRUD - Read
a = [10, 20, 30, 40]
1. 통짜로 a전체 출력
print(a)
2. 필요한 인덱스 번호만 출력
print(a[0], a[1], a[2], a[3]) # print(a[4]) <- out of bound / list index out of range
3. for i in 문장
for i in a:
print(i, end=' ')
print()
for i in [1, 2, 3, 4]: # i 는 반복 카운팅용(looping)
print(i, end=' ')
print()
for value in a: # BUT 여기서는 내용을 꺼내기 떄문에 i 보다는 value, i10, data 를 더 선호
print(value, end=' ')
print()
CRUD - Update
# 내부적으로 숫자를 대입하는 단순 과정이 아닌 삭제후 추가
a = [10, 20, 30, 40]
a[0] = 50
print(a)
print(id(a[0]), id(a[1])) # 고유민증번호
a[0] = 60
print(id(a[0]), id(a[1])) # 기존의 들어있는 data 를 삭제시키고 생성했다는것을 보여주는것
CRUD - Delete
a = [10, 20, 30, 40]
del(a[0]) # del, remove, erase (depends on language)
print(a)
print(len(a)) # a 의 길이를 보여준다 length or size (depends on language)
list 활용 - 내부 list( 1차원, 2차원, 3차원)
a = [10, '호랑이', [20, '코끼리', [30, '독수리']]]
print(a) # list 포함 출력
print(a[2]) # 내부 list 만 출력
print(a[2][0], a[2][1]) # 내부 list 의 선택적 출력
print(a[2][2][0], a[2][2][1]) # 내부 list 속 내부 list 의 선택적 출력
a = 'Apple'
b = ['A', 'p', 'p', 'l', 'e']
print(a)
print(b) # list 속 알파벳 요소
print(a[0], b[0])
a[0] = 'B' # err>> 문자열은 갱신 X
b[0] = 'B' # list 로 관리된 문자는 갱신 가능
print(b)
a = [인덱스0, 인덱스 1, 인덱스 2] ← a = [10, '호랑이', [20, '코끼리', [30, '독수리']]]
index [0] : int
index [1] : str
index [2] : list
list 활용 - Update & Delete 활용
a = ['a', 'b', 'c', 'd', 'e']
print(a[1:3]) # 인덱스 번호 1 ~ 3앞 (3-1)개를 가져오기
a[1:3] = ['F', 'G'] # index 1, 3 삭제후, 'F''G'가 새로 갱신
print(a)
a[1:3] = ['H', 'I', 'J', 'K', 'L'] # index 1, 2가 삭제 됬다고 2개만 갱신할수있는것이 아닌 그 자리로 여러개 대입
print(a)
a = ['a', 'b', 'c', 'd', 'e']
a[1:3] = [] # 특정부분만 delete 하고 싶을때 사용
print(a)
a = ['a', 'b', 'c', 'd', 'e'] # 순수하게 삭제만 한다 (추가라는 개념자체가 없다)
del(a[1:3])
print(a)
list 활용 - append (항목 추가), insert (원하는 항목에 추가), pop (제거)
a = ['o', 'r', 'a', 'n', 'g', 'e']
1. append
print(a)
a.append('f') # list 안에 항목을 추가 시키고 싶을때 append -> 맨뒤 추가
print(a)
a.append(10) # type 상관없이 추가 가능
print(a)
2. insert
a.insert(1, 10) # insert 함수는 원하는 인덱스 번호앞에 추가된다
print(a)
3. pop
a.pop() # 무조건 맨 마지막에 있는 data 를 제거한다
print(a)
a.pop(3) # 원하는 특정 위치의 data 를 제거
print(a) # pop 은 인덱스를 지정해서 제거 , del 은 list 구간 지정 제거
Exception 처리 remove, index(찾고자 하는 인덱스 번호 찾기)
1. remove
a.remove('r') # r을 검색을해서 검색된 r을 제거 시키고 한번을 제거 시키면 중단되기 때문에 뒤에는 지워지지 않는다
print(a)
try: # 예외가 발생하면 try 로 exception 을 잡아준다
a.remove('t') # 검색에 실패하면 error 발생 (검색에서 반드시 있다고 판단될떄 사용)
except: # 프로그램에서 못찾을 경우 exception 처리를 한다
print('예외가 발생하였습니다')
pass
print('호랑이')
2. index
a = ['o', 'r', 'a', 'n', 'r', 'e']
b = a.index('r') # 찾은곳의 인덱스 번호를 알려준다
print(b)
try:
a.index('t') # index 는 return 값이 있다
except:
print('예외가 발생하였습니다')
pass
print('호랑이')
sort 함수 - 비용이 많이 든다 (메모리와 시간 둘중 하나를 선택)
a = ['a', 'c', 'e', 'f', 'd', 'b']
a.sort() # 알파벳 순서대로 정렬을 시켜준다 (sort default )
print(a) # sort 함수는 비용이 많이 든다 -> 1. 시간이 오래걸림 2. 메모리를 많이 사용
reverse() - 역순행이 아니라, 앞과 뒤의 data를 교환
a = ['a', 'c', 'e', 'f', 'd', 'b']
# 이미 정렬이 되어있는 배열을 쓰면 빠르다
a.reverse() # 앞과 뒤의 data 를 swap 시켜준다
print(a)
지금까지 list를 활용한 CRUD에 대하여 알아보았습니다.
다음 포스팅으로는 append와 extend 차이, tuple과 list를 다루는 법등 많이 헷갈리는 함수와 dictionary의 CRUD에 대하여 알아보도록 하겠습니다~!
728x90
반응형
LIST
'Programming > Python 기초' 카테고리의 다른 글
[Python 기초] 파이썬 시작하기_Day 6(함수 선언하기_12가지 형태 "function" 에 대하여 + 예제) (0) | 2021.12.09 |
---|---|
[Python 기초] 파이썬 시작하기_Day 5(append/extend 차이, tuple/list 다루는법, 함수/Dictionary의 CRUD) (0) | 2021.05.01 |
[Python 기초]파이썬 시작하기_Day 3(삼항연산, list, for문, 중첩 for문) (0) | 2021.04.25 |
[Python 기초]파이썬 시작하기_Day 2(배열, 리스트, 연산, 제어문) (0) | 2021.04.17 |
[Python 기초]파이썬 시작하기_Day 1(입출력; default 값 활용, 변수선언, SWAP) (0) | 2021.04.13 |