파이썬 리스트,튜플,세트,딕셔너리의 차이점 비교하기

파이썬에 기본적인 개념인 리스트,튜플,세트,딕셔너리에 대해 자세한 정리 글입니다

1.리스트 개념 정리

리스트는 서로 관련있는 여러개의 데이터들의 목록이라고 생각하면 됩니다 리스트 안에는 정수,실수,문자,불리언 등이 들어갈 수 있습니다 리스트는 아래 처럼 []안에 값을 넣어줍니다

sports = ["축구", "배구", "농구", "수영", "테니스", "탁구"]
print(sports) 
#출력하게 되면 ['축구', '배구', '농구', '수영', '테니스', '탁구'] 이 나옴

sports가 리스트의 변수명이 되고 보통 리스트안에 콤마로 구분되어 있는 축구,배구,농구,수영,테니스,탁구 각각을 원소라고 부르기도 합니다.(또는 값,항목이라고도 함) 위에 예시에는 문자열만 들어가있지만 다양하게 넣을 수 있습니다

sports = ["축구","축구",True,25,3.3]

또한 []안에 아무것도 안넣어 빈 리스트로 두어도 상관없습니다 중요한 건 리스트는 순서가 있고 중복을 허용합니다

2.리스트 사용법

sports = ["축구", "배구", "농구", "수영", "테니스", "탁구"]
print(sports[2])
print(sports[2:5])

리스트는 []안에 숫자를 넣어 출력합니다 sports[2]는 농구가 출력하게 된다. 대부분의 모든 언어에서 배열(파이썬에서는 리스트라고 함)은 0부터 카운트하기 때문이다 그냥 코딩에서는 0부터 세야 한다 생각하면 편합니다

농구
['농구', '수영', '테니스']

파이썬 코드를 실행하면 이처럼 출력하게 됩니다 [2:5]는 2번째 부터 5번째까지 출력하며 이렇게 리스트안에 일부를 잘라서 가져오는걸 슬라이싱이라고 합니다

3.append,insert쓰는 법

append와 insert는 리스트에 값을 추가 할때 씁니다

a = [1,2,3,4,5]
a.append(6)
print(a)

append는 리스트 마지막에 원소를 추가하는 것으로 출력하게 되면 5다음에6이 같이 나오게 됩니다. (실행하면 아래와 같이 나오게 됩니다)

[1, 2, 3, 4, 5, 6]

insert는 특정 위치에 원하는 원소 값을 넣어줍니다

fruits = ['사과', '바나나','귤','파인애플']
fruits.insert(2, '딸기') # 첫번째에 순서(인덱스),두번째 넣을 값
print(fruits)

insert에 2는 리스트 안의 2번째에 딸기라는 값이 들어간다는 의미이며 실행하게 되면 아래와 같이 출력됩니다

['사과', '바나나', '딸기', '귤', '파인애플']

4.튜플 개념 정리

튜플은 리스트와 비슷하지만 한번 만들어지면 수정할 수 없습니다 튜플은 ()괄호 안에 값을 넣어줍니다

colors = ("빨간색", "파란색", "노란색", "초록색")
print(colors)
# 출력하게 되면 ('빨간색', '파란색', '노란색', '초록색') 이 나옴

colors가 튜플의 변수명이되고 튜플도 리스트처럼 다양한 데이터 타입을 넣을 수 있습니다

mixed_tuple = ("사과", 100, True, 3.14)

중요한 건 튜플은 순서가 있고 중복을 허용하지만 수정이 불가능합니다 한번 만들어지면 원소를 추가하거나 삭제, 변경할 수 없어요

5.튜플 사용법

colors = ("빨간색", "파란색", "노란색", "초록색")
print(colors[1])
print(colors[1:3])

튜플도 리스트처럼 인덱스를 사용해서 접근할 수 있습니다 실행하면 아래와 같이 출력됩니다

파란색
('파란색', '노란색')

하지만 튜플은 수정할 수 없기 때문에 append나 insert같은 걸 쓸 수 없습니다

6.세트 개념 정리

세트는 중복을 허용하지 않습니다. 세트는 {}중괄호 안에 값을 넣어줍니다

numbers = {1, 2, 3, 4, 5, 3, 2}
print(numbers)
# 출력하게 되면 {1, 2, 3, 4, 5} 이 나옴 (중복 제거됨)

세트의 가장 큰 특징은 순서가 없고 중복을 허용하지 않는다는 것입니다 그래서 인덱스(순서)로 접근할 수 없어요

7.세트 사용법(add,remove)

fruits = {"사과", "바나나", "오렌지"}
fruits.add("포도")  # 원소 추가
print(fruits)

fruits.remove("바나나")  # 원소 제거
print(fruits)

세트에서만 쓰는add,remove가 있습니다 add는 세트 안에 값을 넣어주고 remove는 제거해줍니다 다시 말해 세트는 순서가 없기때문에 별다른 인덱스를 지정하는게 없습니다 실행하면 아래와 같이 출력됩니다

{'오렌지', '포도', '사과', '바나나'}
{'오렌지', '포도', '사과'}

순서가 랜덤으로 나오는 것을 확인할 수 있습니다 세트는 중복 제거할 때 많이 사용됩니다

data_set = set()

값이 빈 set는 위처럼 set()로 만들으면 됩니다 {}안에 비워두고 작성하시면 에러나니까 주의해주세요

8.딕셔너리 개념 정리

딕셔너리는 키(key)와 값(value)의 쌍으로 이루어진 형태입니다 딕셔너리는 {}중괄호 안에 키:값 형태로 넣어줍니다

student = {"이름": "김철수", "나이": 20, "학과": "컴퓨터공학"}
print(student)
# 출력하게 되면 {'이름': '김철수', '나이': 20, '학과': '컴퓨터공학'} 이 나옴

딕셔너리는 키를 통해서 값에 접근할 수 있고, 키는 중복될 수 없습니다 마치 사전에서 단어를 찾는것처럼 키로 값을 찾아가는 방식입니다

9.딕셔너리 사용법

student = {"이름": "김철수", "나이": 20, "학과": "컴퓨터공학"}
print(student["이름"])  # 키로 값에 접근
print(student["나이"])

student["학년"] = 2  # 새로운 키-값 추가
print(student)

실행하면 아래와 같이 출력됩니다

김철수
20
{'이름': '김철수', '나이': 20, '학과': '컴퓨터공학', '학년': 2}

딕셔너리는 실제 개발에서 데이터를 저장하고 관리할때 매우 유용합니다

10.한눈에 보는 차이점 정리

자료구조 기호 순서 중복 수정 특징
리스트 [] O O O 가장 많이 사용하는 범용적인 자료구조
튜플 () O O X 한번 만들어지면 변경 불가능
세트 {} X X O 중복 제거, 집합 연산에 유용
딕셔너리 {키:값} O X(키) O 키-값 쌍으로 데이터 매핑

각각의 자료구조는 상황에 맞게 사용하면 됩니다 - 리스트: 순서가 중요하고 변경이 필요할때 - 튜플: 변경되면 안되는 고정 데이터를 저장할때
- 세트: 중복을 제거하거나 집합 연산이 필요할때 - 딕셔너리: 키로 값을 찾아야 하는 매핑 데이터를 저장할때

댓글 쓰기