728x90
반응형
SMALL
728x90
반응형
LIST
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