공부/Python

[Python 기초] 내장 자료 구조(리스트와 튜플의 인덱싱, 슬라이싱, 연산, 함수, 딕셔너리, 집합)

tea_pixel 2024. 8. 21. 12:00
반응형

7. 리스트, 튜플, 딕셔너리, 집합

# 리스트

[1,2,3,4,5]
# 결과 [1,2,3,4,5]

a = list([1,2,3,4,5])
a
# 결과 [1,2,3,4,5]

 

리스트 구조를 만드는 방법은 2가지이다.

1. []

2. list()

 

리스트는 문자, 숫자 자료를 넣을 수 있다. 또한 혼합할 수도 있다.

또한, 하나의 값만으로 만들 수 있다는 특징이 있다.

 

 

# 튜플

c=list((1,2,3,4,5))
c
# 결과 : [1,2,3,4,5]

 

튜플은 수정할 수 없다는 특징이 있다.

 

 

리스트의 인덱싱
# 리스트 인덱싱

list1 = [1,2,3, ['a', 'b', 'c']]
list1[0]
# 결과 : 1

list1[3]
# 결과 : ['a', 'b', 'c']

list[3][1]
# 결과 : 'b'

 

리스트를 다른 리스트에 포함시킬 수 있다.

인덱싱은 항상 첫 번째가 0번임을 명심하자.

 

리스트의 슬라이싱
# 리스트의 슬라이싱

list2 = [1,2,3,4,5]
list2[0:3] 
# 결과 : [1, 2, 3]
# 슬라이싱의 마지막 번호는 제외

list3 = [1,2,3,4,5,6,7,8,9]
list[1:6:2]
# 결과 : [2, 4, 6]
# 1:6이므로, [2,3,4,5,6]에서 2개텀으로 선택

 

리스트의 연산
# 리스트의 연산

list1 + list2
# 결과 : [1,2,3, ['a', 'b', 'c'],1,2,3,4,5]
# 두 리스트를 이어붙인 것과 동일함

list2 * 3
# 결과 : [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]
# 곱하게 되면 반복하는 효과

 

리스트 관련 함수

len() : 리스트에 몇 개의 데이터가 있는지 확인

count() : 특정 요소 값 개수 세기

append() : 데이터 삽입

insert() : 데이터 삽입

remove() : 특정 데이터 삭제

clear() : 리스트 데이터 전체 삭제 (변수는 유지, 리스트 안의 데이터만 사라짐)

reverse() : 역순

sort() : 정렬

# 리스트 함수 예제

list3 = [1,2,3,4,5]

len(list3)
# 결과 : 5

list3.count(1)
# 결과 : 2

list4 = list3.append(1)
list4
# 결과 : [1,2,3,4,5,1]
# 맨 끝에 데이터 추가

list5 = list3.insert(3,88)
list5
# 결과 : [1,2,3,88,4,5,1]
# 인덱스가 3인 곳에 88을 삽입

list6 = list3.remove(1)
list6
# 결과 : [2,3,4,5]
# 1이라는 데이터를 삭제, 같은 데이터가 여러개이면 인덱스 번호가 낮은 것 먼저 삭제

list7 = list3.clear()
list7
# 결과 : []
# list7 이라는 리스트는 있지만, 안에 데이터가 모두 사라짐

list8 = list3.sort()
list8 = list3.(reverse=Fale)
# 결과 : [1.2.3.4.5]
# 두 결과가 동일, 오름차순으로 정리, default가 오름차순

list9 = list3.(reverse=True)
# 결과 : [5,4,3,2,1]
# 내림차순으로 정리

 

튜플의 연산

튜플은 데이터 수정이 불가능하다.

다만, 더하고 곱해서 새로운 튜플을 만드는 것은 가능함.

# 튜플 예제

tp1 = (1, 'a')
tp2 = (3,4)
tp1 + tp2
# 결과 : (1,'a',3,4)

tp2 * 3
# 결과 : (3,4,3,4,3,4)

 

 

딕셔너리

Key 값과 value 값이 쌍을 이루게 됨

# 딕셔너리 구제조

score = {'math' : 90, 'english' : 85}
score
# 결과 : {'math' : 90, 'english' : 85}


score['math']
# 결과 : 90
# key값을 이용해 value값을 소환

score.keys()
# 결과 : dict_keys(['math', 'english'])
# key값들을 전부 나타내줌

score.values()
# 결과 : dict_value([90, 85])

score['math'] = 70
score
# 결과 : {'math' : 70, 'english' : 85}
# value값 수정이 가능함.

 

 

집합

 

집합을 만드는 방법은 2가지

1. set() 함수 이용

2. {}을 이용

# 집합

# 집합을 만드는 2가지 방법
set([1,2,3,])
# 결과 : {1,2,3,}

{'apple'}
# 결과 : {'apple'}

 

집합은 중복을 허용하지 않음.

{1,2,3,1}
# 결과 : {1,2,3}
# 집합은 중복을 허용하지 않음

 

A와 B의 교집합, 합집합, 차집합

교집합

A.intersection(B)

A&B

s1 = set([1,2,3,4])
s2 = set([1,2,5,6])

# 교집합
s1.intersection(s2)
# 결과 : {1, 2}

s1 & s2
# 결과 : {1, 2}

 

합집합

A.union(B)

A|B

# 합집합
s1.union(s2)
# 결과 : {1, 2, 3, 4, 5, 6}

s1 | s2
# 결과 : {1, 2, 3, 4, 5, 6}

 

차집합

A.difference(B)

A-B

# 차집합
s1.difference(s2)
# 결과 : {3, 4}

s1 - s2
# 결과 : {3, 4}

 

Ref

 

렛유인 - 파이썬 데이터 분석 - 기초이론

렛유인 - 파이썬 데이터 분석 - 전처리&시각화

728x90