강의자료 · 인공지능응용

3. Data를 묶음으로 다루기

목차

3.1 리스트

list_mixed = [0, 2.5, 'abc']
# 비어있는 리스트 생성
empty_list = []
print(empty_list)
[]
# 직접 입력해서 생성
list_manual = [0, 1, 2, 3, 4]
print(list_manual)
[0, 1, 2, 3, 4]
# range 함수를 이용한 생성 (이하 A, B, C 모두 정수)
# range(B) - 0부터 1의 간격으로 B보다 작은 정수까지 리스트 생성
list_new = list(range(10))
print(list_new)

# range(A,B) - A부터 시작해 1의 간격으로 B보다 작은 정수까지 리스트 생성
list_new = list(range(1,10))
print(list_new)

# range(A,B,C) - A부터 시작해 C의 간격으로 B보다 작은 정수까지 리스트 생성 (C가 음수일 경우 반대)
list_new = list(range(2,10,2))
print(list_new)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
# 리스트에서 +연산과 *연산
list_manual = [0, 1, 2, 3, 4]
list_new = list(range(4,-1,-1))
print(list_manual+list_new)
print(list_manual*2)
[0, 1, 2, 3, 4, 4, 3, 2, 1, 0]
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
# list의 맨 뒤에 원소 추가하기
list_manual = [0, 1, 2, 3, 4]
list_manual.append(5)
print(list_manual)
[0, 1, 2, 3, 4, 5]
# list의 원하는 위치에 원소 추가하기
# insert(position, value) 참고로 시작위치의 값은 0
list_manual.insert(2, 10)
print(list_manual)
[0, 1, 10, 2, 3, 4, 5]
# list의 맨 뒤에 원소 제거하기
list_manual.pop()
print(list_manual)
[0, 1, 10, 2, 3, 4]
# list의 원하는 위치에 원소 제거하기
# pop(position)
list_manual.pop(2)
print(list_manual)
[0, 1, 2, 3, 4]
# list의 원소 개수 세기
num_data = len(list_manual)
print(num_data)
5
# 원소의 위치 찾기 (처음으로 발견된 원소의 위치 반환)
position = list_manual.index(2)
print(position)
2
# list 크기순으로 정렬하기 (기본 오름차순)
list_manual.sort()
print(list_manual)
list_manual.sort(reverse=True)
print(list_manual)
[0, 1, 2, 3, 4]
[4, 3, 2, 1, 0]
# 원하는 부위 잘라내기 (슬라이싱)
# 하나만 선택해 반환하기
print(list_manual[2])
2
# [A:B] A위치부터, B보다 '작은'위치까지 선택
# [2:4] = 2,3의 위치 선택
print(list_manual[2:4])
[2, 1]
# [A:] A위치부터, 끝까지
# [:B] 시작부터, B보다 '작은'위치까지 선택
print(list_manual[2:])
print(list_manual[:4])
[2, 1, 0]
[4, 3, 2, 1]
# [-A] 맨 뒤에서 부터 A번째
print(list_manual[-2])
1

3.2 튜플

# 비어있는 튜플 생성 = 하지만 수정이 안되기 때문에 사실상 의미가 없다.
empty_tuple = ()
print(empty_tuple)
()
# 직접 입력해서 생성
tuple_manual = (0, 1, 2, 3, 4)
print(tuple_manual)
(0, 1, 2, 3, 4)
# range 함수를 이용한 생성 (이하 A, B, C 모두 정수)
print(tuple(range(2,10,2)))
(2, 4, 6, 8)
len(tuple_manual)
5
tuple_manual.index(4)
4
tuple_manual[1:]
(1, 2, 3, 4)

3.3 세트

# 비어있는 세트 생성
empty_set = {}
print(empty_set)
{}
# 직접 입력해서 생성 - 중복원소는 제거된다.
set_manual = {0, 1, 2, 3, 4, 4, 3, 2, 1, 0}
print(set_manual)
{0, 1, 2, 3, 4}
# range 함수를 이용한 생성 (이하 A, B, C 모두 정수)
print(set(range(2,10,2)))
{8, 2, 4, 6}
# 교집합 '&'
set_first = {1, 3, 5}
set_second = {1, 2, 4, 8}
print(set_first&set_second)
{1}
# 합집합 '|'
print(set_first|set_second)
{1, 2, 3, 4, 5, 8}
# 차집합 '-'
print(set_first-set_second)
{3, 5}
# 부분집합 여부 확인
# A.issuperset(B) - B가 A의 부분집합인지 여부 (A가 B를 포함하는지 여부)
set_third = {1, 3, 5, 7}
set_third.issuperset(set_first)
True
# 원소 여부 확인
3 in set_first
True

3.4 딕셔너리

  1. 항목 추가
  2. 항목 추가

관리된다.

my_dictionary = {'name':'John', 'age':15, 'height': 1.76}
print(my_dictionary)
{'name': 'John', 'age': 15, 'height': 1.76}
my_dictionary['name']
'John'
first_user = {'name':'John', 'age':15, 'height':1.76, 'position':[15,3]}
second_user = {'name':'Paul', 'age':17, 'height':1.88, 'position':[-2,7]}
users = [first_user, second_user]
print(users[0]['name'])
John