본문 바로가기
Python/Python 기초

[파이썬완전기초]자료저장하기

by 찐남 2021. 7. 25.
본 포스팅은 2021 NIPA AI 온라인 무료 교육의 AI 실무 기본 과정을 기반으로 작성하였습니다.

1. 리스트 활용

1.1. list.append(x)


리스트형에 자료를 추가하는 방법에 대해서 알아보겠습니다. 리스트(list)에 추가한다(append)로 이해하시면 기억하기 쉽습니다. list.append는 리스트의 가장 마지막 원소에 자료를 추가하는 데에 사용합니다. 아래 예를 살펴 보도록 하겠습니다.

x = [] # 원소가 들어있지 않은 빈 리스트 x 생성
y = [‘a’, ‘b’, ‘c’] # 'a','b','c' 의 원소를 가지는 리스트 y 생성

x.append(5) # x 리스트에 5 추가
y.append(‘d’) # y 리스트에 'd' 추가
print(x, y) # x 리스트와 y 리스트를 화면에 출력

파이썬 결과값 -> [5] ['a','b','c','d']

1.2. list.insert(a,b)


이번엔 자료를 삽입하는 방법에 대해서 설명드리겠습니다. 리스트(list)에 삽입한다(insert)로 이해하시면 기억하기 쉽습니다. 자료를 하나만 삽입할 수 있다는 사실을 기억하세요. 사용 방법은 아래와 같습니다.

x.insert(a,b) # x 리스트의 a번째 원소 다음에 원소 b를 삽입


아래는 간단한 예시입니다.

x = [1, 2, 3, 4] # 원소 1, 2, 3, 4를 가지는 리스트 x 생성
x.insert(2, 5) # x 리스트의 2번째 원소 다음에 5를 삽입해라
print(x) # x 리스트 출력

파이썬 출력값 -> [1, 2, 5, 3, 4]


혹시 위의 명령문에서 x.insert(2, 5)를 x.insert(10, 5)으로 바꾸면 어떻게 될까요? 원소가 4개 밖에 없어서 에러가 발생할까요? 실행을 시켜보면 결과는 아래와 같습니다.

x = [1, 2, 3, 4] # 원소 1, 2, 3, 4를 가지는 리스트 x 생성
x.insert(10, 7) # x 리스트의 10번째 원소 다음에 5를 삽입해라
print(x) # x 리스트 출력

파이썬 출력값 -> [1, 2, 3, 4, 7]


즉, 가장 마지막 원소 다음에 추가됨을 알 수 있습니다.

1.3. list.remove(x)


리스트의 원소를 지우고 싶을 땐, list.remove()를 사용하면 됩니다. 리스트(list)에서 제거해라(remove)로 이해하시면 기억하기 쉽습니다. 사용방법은 아래와 같습니다.

list.remove(x) # 제일 처음 나오는 원소 x 제거


아래는 명령문 예시입니다.

x = [1, 2, 3, 4, 5, 1, 2] # 원소 1, 2, 3, 4, 5 ,1, 2를 가지는 리스트 x 생성
x.remove(1) # 제일 처음 나오는 원소 1을 제거
print(x) # x 리스트 출력

파이썬 결과 -> [2, 3, 4, 5, 1, 2]


1의 원소가 2개 있지만, 가장 처음에 나오는 원소 1만 제거되고, 6번째에 있는 원소 1은 제거되지 않고, 유지됩니다.

1.4. list.sort()


리스트를 원소의 크기 순으로 정렬시킬 수도 있습니다. 리스트(list)를 정렬시킨다(sort)로 기억하시면 이해하기 쉽습니다. 아래의 예를 살펴보도록 하겠습니다.

x = [15, 1, 31, 83]
y = [‘may’, ‘april’, ‘december’]
x.sort()
y.sort()
print(e, f)

파이썬 출력 결과 -> [1, 15, 31, 83] ['april', 'december', 'may']





2. 시퀀스 자료형


시퀀스 자료형은 순서가 있는 자료형으로 문자열, 리스트 등이 여기에 속합니다.

a = "one" # 문자열
b = ['t','w','o'] # 리스트
c = (10, 11, 12, 13, 14, 15) #튜플


시퀀스의 특징은 원소간의 순서가 존재하고, 인덱싱과 슬라이싱이 가능하다는 것입니다. 아래 예를 보시면 이해하기 쉬울 것입니다.

a = "one" # 문자열 'one'을 a에 저장
b = ['t','w','o'] # 원소 't', 'w', 'o'를 가지는 리스트를 b에 저장

print(a[1]) # a 문자열의 2번째 인덱싱 값 출력
print(b[1:3]) # b 리스트에서 2번째부터 3번째 원소 출력

파이썬 출력 결과 -> n ['w', 'o']


인덱싱과 슬라이싱을 할 때, 음수를 넣거나 자리를 비우는 것이 가능합니다. 예를 들어 -1은 오른쪽 맨 끝에서 첫번째 인덱싱을 의미합니다, 인덱싱 자리를 비우는 것은 첫 인덱싱부터 시작함을 의미합니다. 아래 예를 보면 이해하시기 쉽습니다.

a = "one" # 문자열 'one'을 a에 저장
b = ['t','w','o'] # 원소 't', 'w', 'o'를 가지는 리스트를 b에 저장

print(a[-2])
print(b[:2])

파이썬 출력 결과
-> n
-> ['t', 'w']


시퀀스 안에 있는 원소 조회도 가능합니다.

a = "one" # 문자열 'one'을 a에 저장
b = ['t','w','o'] # 원소 't', 'w', 'o'를 가지는 리스트를 b에 저장

print('n' in a) # a 리스트 안에 'n' 문자의 존재 여부를 확인하고, 출력 -> True 반환
print('b' in b) # b 리스트 안에 'b' 원소의 존재 여부를 확인하고, 출력 -> False 반환


len 연산자로 시퀀스의 길이를 확인할 수 있습니다.

a = "one" # 문자열 'one'을 a에 저장
b = ['t','w','o'] # 원소 't', 'w', 'o'를 가지는 리스트를 b에 저장

print(len(a)) # a의 길이 출력 : 3
print(len(b)) # b의 길이 출력 : 3


+ 연산자를 이용하면 시퀀스를 연결할 수 있습니다.

x = ['o', 'n', 'e']
y = ['t', 'w', 'o']

print(x + y)

파이썬 출력 결과 -> ['o', 'n', 'e', 't', 'w', 'o']


반복 연산도 가능합니다.

x = ['o', 'n', 'e'] * 3
print(x)

파이썬 출력 결과 -> ['o', 'n', 'e','o', 'n', 'e','o', 'n', 'e']

3. Dictionary


딕셔너리는 '사전'을 나타내는 영어 단어입니다. 사전에서 apple을 찾아보면 사과를 의미하고, snow는 눈을 의미한다는 사실을 알 수 있습니다. 이렇듯 딕셔너리는 대응 자료가 있는 자료형을 의미합니다.

딕셔너리는 중괄호{} 로 묶어서 표현합니다.

temp= {} # 빈 딕셔너리를 만들어서 temp 에 저장
temp2 = {‘name’ : ‘Jane’, ‘age’:35} # name에 'Jane'을 저장, age에 35를 저장하여 딕셔너리 temp2 생성


딕셔너리의 자료 표현 방법은 {key : value} 입니다. 즉, key를 알면 value를 알 수 있습니다. key는 열쇠입니다. 자료를 꺼낼 수 있는 열쇠로 이해하시면 됩니다. value는 딕셔너리에서 key로 추출한 자료입니다. 딕셔너리에서 자료를 꺼내는 예제는 아래와 같습니다.

temp2 = {‘name’ : ‘Jane’, ‘age’:35}
print(temp2('name'))
print(temp2('age'))

파이썬 출력 결과
-> Jane
-> 35


딕셔너리에서 자료를 추가하는 방법은 아래와 같습니다.

temp2 = {‘name’ : ‘Jane’, ‘age’:35}
temp2['sex'] = 'F'

print(temp2)

파이썬 출력 결과
-> {‘name’ : ‘Jane’, ‘age’ : 35, 'sex' : 'F'}


del 함수를 사용해서 딕셔너리에서 특정 key를 제거할 수 있습니다.

temp2 = {‘name’ : ‘Jane’, ‘age’:35}
del temp2['age']
print(temp2)

파이썬 출력 결과 -> {'name': 'Jane'}


딕셔너리에서 key는 변할 수 없는 자료형입니다. 리스트 형태는 안되고, 튜플은 가능합니다.

datas= {[1,2,3]:‘Alphabet’} # Error
datas= {(1,2,3):‘Number’} # OK


이번 포스팅에서는 자료를 저장하는 방법에 대해서 살펴보았습니다. 다음 포스팅에서는 함수와 매서드에 대해서 살펴보도록 하겠습니다.



반응형

댓글