Fundamental Node

[파이썬]04. 리스트, 튜플, 세트, 딕셔너리

玄曄 2022. 3. 28. 15:29

[파이썬]04. 리스트, 튜플, 세트, 딕셔너리

1. 리스트

(1) 리스트 인덱싱

(2) 중첩 리스트 인덱싱

(3) 리스트 슬라이싱

(4) 중첩 리스트 슬라이싱

(5) 리스트 연산자/함수

(6) 리스트 수정

(7) 리스트 메소드

2. 튜플

(1) 튜플 인덱싱

(2) 중첩 튜플 인덱싱

(3) 튜플 슬라이싱

(4) 중첩 튜플 슬라이싱

(5) 튜플 연산자/함수

3. 세트

(1) 세트 연산자

(2) 세트 메소드

4. 딕셔너리

(1) 딕셔너리 요소 추가/삭제

(2) 딕셔너리 메소드

=========================

 

[파이썬]04. 리스트, 튜플, 세트, 딕셔너리

 

1. 리스트

(1) 리스트 

- 변경 가능한 시퀀스 자료형

- 하나의 변수에 여러 값 할당 가능

- 같은 자료형이 아니라 다른 자료형을 가지는 값들을 포함 가능

- 일반적으로 비슷한 항목들의 모음을 순서대로 저장하는 데 사용

print([])
print([1,2,3])
print(['One', 'Two', 'Three'])
print([1, 'One', 2, 'Two', 3, 'Three'])
print([1,2,3,['One', 'Two', 'Three']])

(2) 리스트 인덱싱

- 리스트의 각 위치에 해당하는 값에 접근하기 위해서 주소 개념의 숫자를 사용

list = ['One', 'Two', 'Three']
print(list)
print(list[0])
print(list[1])
print(list[2])
print(list[-1])
print(list[-2])
print(list[-3])

(3) 중첩 리스트 인덱싱

- 리스트 안에 리스트가 있을 경우 인덱스 접근 방법

list = [1,2,3,['One', 'Two', 'Three']]
print(list)
print(list[0])
print(list[1])
print(list[3])
print(list[3][0])
print(list[3][1])
print(list[3][2])
print(list[-1][0])

(4) 리스트 슬라이싱

- 리스트의 인덱스를 통해서 일부만 가져올 때 사용

list = ['One', 'Two', 'Three']
print(list)
print(list[0:])
print(list[1:2])
print(list[1:])

(5) 중첩 리스트 슬라이싱

- 중첩된 리스트에서 일부분만 인덱스를 통해서 가져올 때 사용

list = [1,2,3,['One', 'Two', 'Three']]
print(list)
print(list[2:])
print(list[3][2:])
print(list[3][1:2])

(6) 리스트 연산자/함수

- 더하기 + 연산자

- 곱하기 * 연산자

- 리스트 길이를 구하는 len()함수

list_1 = ['One', 'Two', 'Three']
list_2 = ['Four', 'Five', 'Six']
print(list_1,'\n', list_2)
print(list_1 + list_2)
print(list_1 * 3)
print(len(list_1))
print(len(list_1 * 3))

(7) 리스트 수정

- 리스트 인덱스 주소를 이용한 값 수정

list = ['One', 'Two', 'Three']
print(list)
list[2] = 3
print(list)
list[1] = 2
print(list)
list[0] = 1
print(list)

(8) 리스트 메소드

ⓐ append() : 리스트 요소 추가

list = ['One', 'Two', 'Three']
print(list)
list.append('Four')
print(list)
list.append([1,2,3])
print(list)

ⓑ sort() : 리스트 정렬

list = [10, 40, 20, 30]
print(list)
list.sort()
print(list)

list = ['orange', 'apple', 'banana', 'strawberry']
print('\n',list)
list.sort()
print(list)

ⓒ reverse()

list = ['orange', 'apple', 'banana', 'strawberry']
print(list)
list.reverse()
print(list)

ⓓ index()

list = [10, 40, 20, 30]
print(list)
print(list.index(10))
print(list.index(20))

ⓔ insert() : 리스트 요소 삽입

list = [10, 40, 20, 30]
print(list)
list.insert(4, 50)
print(list)
list.insert(0, 60)
print(list)

ⓕ remove() : 리스트 요소 제거. 입력인자(값)

list = [10, 40, 20, 30]
print(list)
list.remove(40)
print(list)
list.remove(30)
print(list)

ⓖ del : 리스트 요소 제거. 리스트 요소 인덱스

list = [10, 40, 20, 30]
print(list)
del list[0]
print(list)
del list[2]
print(list)

ⓗ pop() : 리스트 요소를 방출

list = [10, 40, 20, 30]
print(list)
list.pop()
print(list)
list.pop(0)
print(list)

ⓘ count() : 리스트 요소의 갯수 계산

list = [10, 20, 20, 30, 30, 30]
print(list)
print(list.count(30))
print(list.count(20))

ⓙ extend() : 리스트 확장

list = [10, 40, 20, 30]
print(list)
list.extend([50, 60])
print(list)

 

2. 튜플

(1) 튜플

- 리스트와 유사하지만 변경 불가능한 시퀀스 자료형

- 하나의 변수에 여러 값 할당 가능

- 소괄호()를 사용하여 표현

print(())
print((1,2,3))
print(('One', 'Two', 'Three'))
print((1, 'One',2 , 'Two',3 , 'Three'))
print((1,2,3, ('One', 'Two', 'Three')))

(2) 튜플 인덱싱

- 튜플의 각 위치에 해당하는 값에 접근하기 위해서 주소 개념의 숫자를 사용

tuple = ('One', 'Two', 'Three')
print(tuple)
print(tuple[0])
print(tuple[-1])

(3) 중첩 튜플 인덱싱

- 튜플 안에 튜플이 중첩되어 있을 경우, 인덱스 접근 방법

tuple = (1,2,3, ('One', 'Two', 'Three'))
print(tuple)
print(tuple[3])
print(tuple[3][0])
print(tuple[3][-1])

(4) 튜플 슬라이싱

- 튜플의 인덱스를 통해서 일부분만 가져올 때 사용

tuple = ('One', 'Two', 'Three')
print(tuple)
print(tuple[0:])
print(tuple[1:2])
print(tuple[1:])
print(tuple[-2:])

(5) 중첩 튜플 슬라이싱

- 중첩된 튜플에서 일부분만 인덱스를 통해서 가져올 때 사용

tuple = (1,2,3, ('One', 'Two', 'Three'))
print(tuple[3])
print(tuple[3][2:])
print(tuple[3][:2])

(6) 튜플 연산자/함수

- 더하기 + 연산자

- 곱하기 * 연산자

- 튜플 길이를 구하는 len()함수

tuple_1 = ('One', 'Two', 'Three')
tuple_2 = ('Four', 'Five', 'Six')
print(tuple_1,'\n', tuple_2)
print(tuple_1 + tuple_2)
print(tuple_1 * 3)
print(len(tuple_1))
print(len(tuple_1 * 3))

 

3. 세트

(1) 세트

- 데이터 중복을 허용하지 않는 구조

- 순서가 없는 데이터 집합을 위한 구조

- 인덱싱으로 값을 접근할 수 없음

print({})
print({'One', 'Two', 'Three'})
print({10, 20, 30, 40})

(2) 세트 연산자

- 교집합(&), 합집합(|), 차집합(-), 여집합(^)

set_1 = {10, 20, 20, 30}
set_2 = {30, 30, 40, 50}
print(set_1)
print(set_2)
print(set_1 & set_2)
print(set_1 | set_2)
print(set_1 - set_2)
print(set_1 ^ set_2)

- 요소 추가 : add()

- 여러 요소 추가 : update()

- 요소 제거 : remove()

- 요소 제거 : discard()

- 모든 요소 제거 : clear()

(3) 세트 메소드

set = {10, 20, 30, 40}
print(set)

set.add(50)
print(set)

set.update([60, 70])
print(set)

set.remove(70)
set.remove(60)
print(set)

set.discard(30)
print(set)

set.clear()
print(set)

 

 

4. 딕셔너리

(1) 딕셔너리

- 키key와 값value의 쌍pair으로 구성된 데이터

- 순서가 없는 데이터

- 키key를 통해 값value을 얻음

- 동일한 키key가 있을 경우 덮어씀

dic = {1:'One', 2:'Two', 3:'Three'}
print(dic)

dic = {1:'One', 2:'Two', 3:'Three', 1:'1', 2:'2', 3:'3'}
print(dic)

(2) 딕셔너리 요소 추가/삭제

- 딕셔너리의 해당 키key에 값value을 추가하여 요소 추가

- del을 이용하여 요소 제거

dic = {1:'One', 2:'Two', 3:'Three'}
print(dic)
print(dic[2])
dic[4] = 'Four'
print(dic)
dic[5] = 'Five'
print(dic)
del dic[4]
print(dic)

(3) 딕셔너리 메소드

메소드 설명
keys() 딕셔너리의 키들를 모두 가져오기
values() 딕셔너리의 값들을 모두 가져오기
items() 딕셔너리의 키와 값들을 모두 가져오기
get() 딕셔너리에서 키에 해당하는 값 가져오기
pop() 딕셔너리에서 키에 해당하는 값 추출하기
clear() 딕셔너리의 모든 요소를 제거
dic = {1:'One', 2:'Two', 3:'Three'}
print(dic)
print(dic.keys())
print(dic.values())
print(dic.items())
print(dic.get(2))
print(dic)
print(dic.pop(3))
print(dic)
dic.clear()
print(dic)