1.리스트

리스트는 여러 요소들을 갖는 집합(컬렉션)으로 새로운 요소를 추가하거나 갱신, 삭제하는 일이 가능합니다.

파이썬의 리스트는 동적배열(Dynamic Array)로서 자유롭게 확장할 수 있는 구조를 가지고 있습니다.

리스트는 그 안의 요소(element)들은 그 값을 자유롭게 변경할 수 있는 Mutable 데이터 타입입니다.

1-1.리스트 만들기

리스트를 사용하면 1, 3, 5, 7, 9 숫자 모음을 다음과 같이 간단하게 표현할 수 있습니다.

number_list = [1,2,3,7,9]

1-2.리스트 값 찾기

몇 번째 리스트에 어떤 값이 있는지 알려면 아래와 같이 해주시면 됩니다.

a = [1,2,3,4]
print('a의 0번째 값은', a[0], '입니다.')
# Output:
# a의 0번째 값은 1 입니다.
a = [1,2,3,4]
print('a의 1~2번째 값은', a[0:2], '입니다.')
# Output:
# a의 1~2번째 값은 [1, 2] 입니다.
a = [1,2,3,4]
print('a의 뒤에서 2번째 값은', a[-2], '입니다.')
# Output:
# a의 뒤에서 2번째 값은 3 입니다.

1-3.리스트 연산하기

리스트 더하기

a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
# Output:
# [1, 2, 3, 4, 5, 6]

리스트 반복하기

a = [1, 2, 3]
print(a * 3)
# Output:
# [1, 2, 3, 1, 2, 3, 1, 2, 3]

리스트 길이 구하기

a = [1, 2, 3]
print(len(a))
# Output:
# 3

특정 개수가 몇개인지 구하기

a = [1, 2, 3, 4, 1]
print(a.count(1))
# Output:
# 2

특정 값이 몇번째에 있는지 구하기

a = [1, 2, 3, 4]
print(a.index(3))
# Output:
# 2

1-4.리스트 추가,수정,삭제

append 로 리스트 추가

append(x)는 리스트의 맨 마지막에 x를 추가하는 함수 입니다.

a = [1, 2, 3]
a.append(4)
print(a)
# Output:
# [1, 2, 3, 4]

insert 로 리스트 추가

insert(a, b)는 리스트의 a번째 위치에 b를 삽입하는 함수 입니다.

a = [1, 2, 3]
a.insert(0, 4)
print(a)
# Output:
# [4, 1, 2, 3]

리스트 확장하기

extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더합니다.

a = [1, 2, 3]
a.extend([4, 5])
print(a)
# Output:
# [1, 2, 3, 4, 5]

리스트에서 값 수정하기

a = [1, 2, 3, 4]
a[1] = 7
print(a)
# Output:
# [1, 7, 3, 4]

del 함수를 이용하여 삭제하기

a = [1, 2, 3, 4]
del a[1]
print(a)
# Output:
# [1, 3, 4]

1-5.리스트 정렬, 뒤집기

sort 함수는 리스트의 요소를 순서대로 정렬해 줍니다.

a = [1, 4, 3, 2]
a.sort()
print(a)
# Output:
# [1, 2, 3, 4]

reverse 함수는 리스트를 역순으로 뒤집어 줍니다.

a = ['a', 'c', 'b']
a.reverse()
print(a)
# Output:
# ['b', 'c', 'a']

2.튜플

Tuple은 리스트와 비슷하게 여러 요소들을 갖는 컬렉션 입니다.

리스트와 다른 점은 Tuple은 새로운 요소를 추가하거나 갱신, 삭제하는 일을 할 수 없습니다.

2-1.튜플과 리스트의 다름점

  • 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.

2-2.튜플 만들기

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))

리스트와 모습은 거의 비슷하지만 튜플에서는 리스트와 다른 2가지 차이점을 찾아볼 수 있습니다.

t2 = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를 반드시 붙여야 한다는 것과 t4 = 1, 2, 3처럼 괄호( )를 생략해도 무방하다는 점입니다.

튜플은 값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일합니다.

3.딕셔너리

딕셔너리는 “키(Key) - 값(Value)” 쌍을 요소로 갖는 컬렉션 입니다.

딕셔너리는 흔히 Map 이라고도 불리우는데, 키(Key)로 신속하게 값(Value)을 찾아내는 해시테이블(Hash Table) 구조를 가지고 있습니다.

자바스크립트의 object라고 생각하시면 편합니다.

3-1.딕셔너리 만들기

dic = {"name": "홍길동", "age": 25, "phone": "010-000"}
print(dic)
# Output:
# {'name': '홍길동', 'age': 25, 'phone': '010-000'}

딕셔너리 dic의 정보

key value
name 홍길동
age 25
phone 010-000

3-2.딕셔너리 값 찾기

딕셔너리의 값은 key를 이용해서 찾을 수 있습니다.

dic = {"name": "홍길동", "age": 25, "phone": "010-000"}
print(dic["name"])
# Output:
# 홍길동

3-3.딕셔너리 추가,수정,삭제

추가 방법

dic = {"name": "홍길동", "age": 25, "phone": "010-000"}
dic["gender"] = "man"
print(dic)
# Output:
# {'name': '홍길동', 'age': 25, 'phone': '010-000', 'gender': 'man'}

수정 방법

dic = {"name": "홍길동", "age": 25, "phone": "010-000"}
dic["age"] = 30
print(dic)
# Output:
# {'name': '홍길동', 'age': 30, 'phone': '010-000'}

삭제 방법

dic = {"name": "홍길동", "age": 25, "phone": "010-000"}
del dic["phone"]
print(dic)
# Output:
# {'name': '홍길동', 'age': 25}