Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- kt 에이블스쿨 기자단
- kt 에이블스쿨 6기 빅프로젝트
- kt 에이블스쿨 6기 ai
- 알고리즘
- kt 에이블스쿨 6기 미니 프로젝트
- 에이블 기자단
- KT AIVLE
- 백준
- 티스토리챌린지
- 케이티 에이블스쿨 6기 java
- 구현
- 케이티 에이블스쿨 6기 ai
- 판다스
- 네트워크
- 오블완
- kt aivle school
- kt 에이블스쿨 6기
- 백준 사탕 게임
- 데이터 프레임
- 케이티 에이블스쿨 6기 후기
- 케이티 에이블스쿨 기자단
- 머신러닝
- 앙상블
- 케이티 에이블스쿨 6기 spring
- 파이썬
- SQLD
- 케이티 에이블스쿨
- KT 에이블스쿨
- 케이티 에이블스쿨 6기
Archives
- Today
- Total
미식가의 개발 일기
[파이썬] 내장 데이터 타입(리스트, 딕셔너리, 튜플, 집합) 본문
리스트(List)
수정 O, 순서 O, 중복 O
- 선언
a = list()
a = []
- 추가
# 맨 뒤에 아이템 추가
list_name.append(a)
# 특정 위치에 아이템 추가
list_name.insert(3, 5) -> 3번째 인덱스에 5를 삽입
# 리스트 안에 리스트를 요소로 풀어서 추가하기
l = [1, 2, 3]
ans = []
ans.append(1)
ans.append(*l)
print(ans) -> [1, 1, 2, 3]
- 삭제
a = [10, 20, 30]
#인덱스로 삭제
del a[0]
#값으로 삭제
a.remove(10)
#리턴 후 삭제
a.pop(0)
- 슬라이싱 -> list[start:stop:step] 형식
my_list = [0, 1, 2, 3, 4, 5]
# 기본 슬라이싱
print(my_list[2:5]) # [2, 3, 4] (인덱스 2부터 4까지)
print(my_list[:3]) # [0, 1, 2] (처음부터 인덱스 2까지)
print(my_list[3:]) # [3, 4, 5] (인덱스 3부터 끝까지)
# 음수 인덱스를 사용한 슬라이싱
print(my_list[:-2]) # [0, 1, 2, 3] (처음부터 끝에서 두 번째 요소까지)
print(my_list[-3:]) # [3, 4, 5] (끝에서 세 번째 요소부터 끝까지)
# 간격을 사용한 슬라이싱
print(my_list[::2]) # [0, 2, 4] (처음부터 끝까지 2칸씩 건너뛰며)
print(my_list[1::2]) # [1, 3, 5] (인덱스 1부터 끝까지 2칸씩 건너뛰며)
# 리스트 뒤집기
print(my_list[::-1]) # [5, 4, 3, 2, 1, 0] (역순으로 모든 요소 반환)
딕셔너리(Dictionary)
수정 O, 순서 O, key는 중복 X, value는 중복 O
- 선언
a = dict()
a = {}
- key로 value 찾기
print(dic[key])
- value로 key 찾기
print([k for k, v in dic if value=v])
-> 하지만 이렇게 조회할 시 시간 복잡도가 증가할 수 있음 그럴 땐 역방향으로 조회할 수 있도록 key, value값을 교차하여 딕셔너리 하나 더 생성
dic['a'] = b
dic['b'] = a
-> 이렇게 양방향으로 선언하면 key, value값 모두 편하게 조회 가능
- 추가
a['key_name'] = 'value_name'
- 연산
d['a'] = 1
d['a'] += 1 -> {'a': 2}
- 키, 값 조회
for k, v in a.items():
print(k, v)
- 삭제
a.pop('key_name')
del a['key_name']
- 빈도수 계산 -> Counter
from collections import Counter
a = [1, 2, 3, 4, 5, 5, 5, 6, 6]
b = Counter(a)
b -> Counter({5: 3, 6: 2, 1: 1, 2: 1, 3: 1, 4: 1})
#가장 높은 빈도수를 가지는 요소
c = b.most_common(2) -> 2개 출력
c -> [(5, 3), (6, 2)]
튜플 (Tuple)
수정 X, 순서 O, 중복 O
- 선언
t = tuple()
t = ()
→ 수정이 안되는 특정 때문에 요소를 변경하려면 리스트로 변환한 후 변경하고 다시 튜플로 변경 해야함
집합(Set)
수정 O, 순서 X, 중복 X
- 선언, 추가, 제거
s = {1, 2, 3}
추가(싱글 요소) - add
추가(열거형 자료) - update
제거(싱글 요소) - remove : 제거 대상 없으면 에러 발생
discard : 제거 대상 없어도 에러 발생X
- 특정 요소 포함 여부 -> in 연산이 매우 빠르다 → O(1)
s = {1, 2, 3}
if 1 in s:
print(True)
- 특정 요소 포함 여부 -> any
vset = {1, 2, 3, 3} -> {1, 2, 3}
ex = {3, 4, 5}
# vset에 ex에 있는 값 하나라도 있으면 True
if any(vset and ex):
print(True)
반응형
'Python' 카테고리의 다른 글
[파이썬] 문자열 조작 (0) | 2024.07.11 |
---|---|
[파이썬] itertools 순열과 조합 (0) | 2024.07.11 |
[파이썬] collections -> Queue, Counter, defaultdict (0) | 2024.07.11 |
[파이썬] 람다 함수 (0) | 2024.07.11 |
[파이썬] 리스트 컴프리헨션 (0) | 2024.07.11 |