파이썬에 기본적인 개념인 리스트,튜플,세트,딕셔너리에 대해 자세한 정리 글입니다
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 | 키-값 쌍으로 데이터 매핑 |
각각의 자료구조는 상황에 맞게 사용하면 됩니다
- 리스트: 순서가 중요하고 변경이 필요할때
- 튜플: 변경되면 안되는 고정 데이터를 저장할때
- 세트: 중복을 제거하거나 집합 연산이 필요할때
- 딕셔너리: 키로 값을 찾아야 하는 매핑 데이터를 저장할때
댓글 쓰기