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

+ Recent posts