[Python] 리스트와 사전, 튜플, 자료구조

개발log·2024년 2월 21일
0

Python

목록 보기
2/17
post-thumbnail

📊 리스트 []

인덱스, 갯수

  • index: 해당 인덱스
  • count: 갯수 세기
# 리스트 []

clock = ["시","분","초"]
print(clock) #['시', '분', '초']

# 위치 찾기(인덱스는 0부터 시작)
print(clock.index("분")) #1

# 같은 이름 갯수 세기
print(clock) #['시', '구름', '분', '초', '구름']
print(clock.count("구름")) #2

값 추가와 삭제

  • append: 값 추가
  • insert: 원하는 인덱스에 값 추가
  • pop: 맨 뒤의 값 삭제
  • clear: 리스트 비우기
  • extend: 리스트 합치기(확장)
# 리스트 뒤에 값 추가하기
clock.append("하루")
print(clock) #['시', '분', '초', '하루']

# 원하는 인덱스에 값 추가하기
clock.insert(1,"구름") #인덱스 번호, 값
print(clock) #['시', '구름', '분', '초', '하루']

# 맨 뒤의 값 삭제
print(clock.pop()) #하루
print(clock) #['시', '구름', '분', '초']

# 모두 삭제
num_list.clear()
print(num_list) #[]

# 리스트 합치기
num_list = [10, 20]
mix_list = ["개발", 30, True]
num_list.extend(mix_list)
print(num_list) #[10, 20, '개발', 30, True]

정렬, 확장

  • sort: 정렬
  • reverse: 뒤집기
# 정렬
num_list = [1,3,4,5,2]
num_list.sort()
print(num_list) #[1, 2, 3, 4, 5]

# 뒤집기
num_list.reverse()
print(num_list) #[5, 4, 3, 2, 1]

📚 사전 {}

키는 중복 불가
키는 문자열, 정수 모두 가능

생성과 호출

  • 값 호출: bag[1], bag.get(1)
  • 없는 값 호출 시: bag.get(5, "자바")
  • 값 있는지 여부 확인: 3 in bag
  • key 호출: bag.keys()
  • value 호출: bag.values()
  • key, value 호출: bag.items()
# 사전 {}

# key, value
bag ={1 : "개발", 2: "파이썬"}
# key값 넣으면 value값 호출
print(bag[1]) #개발
print(bag.get(1)) #개발

# 없는 값 호출
# print(bag[5]) 에러
print(bag.get(5)) #None, 에러 아님
print(bag.get(5, "자바")) # 깂이 없으면 "자바" 출력

# 해당 값 있는지 확인
print(3 in bag) #False

# key 출력
print(bag.keys()) #dict_keys([1, 2])

# value 출력
print(bag.values()) #dict_values(['개발', '파이썬'])

# key, value 모두 출력
print(bag.items()) #dict_items([(1, '개발'), (2, '파이썬')])

값 추가와 삭제

  • 값 추가: bag[3]="JSP"
  • 값 삭제: del bag[3]
  • dictionary 삭제: bag.clear()
# 값 추가
print(bag) #{1: '개발', 2: '파이썬'}
bag[3]="JSP"
print(bag) #{1: '개발', 2: '파이썬', 3: 'JSP'}

# 값 삭제
del bag[3]
print(bag) #{1: '개발', 2: '파이썬'}

# dictionary 삭제
bag.clear()
print(bag) #{}

🎯 튜플 ()

값의 추가, 변경 불가능
고정된 값

menu = ("밥", "김치")
# menu.add("밥") 고정된 값이기 때문에 불가능

# 한번에 변수 대입 가능
(name, age, codding) = ("개발", 30, "파이썬")
print(name, age, codding) #개발 30 파이썬

🍔 set

중복 안됨, 순서 없음

집합 {}

  • 교집합: &, intersection
  • 합집합: |, union
  • 차집합: -, difference
# 집합(set)
ham = {1,5,5,5,4}
print(ham) #{1, 4, 5} 중복 허용 안되기 때문에

java = {"김프로", "김코딩", "프레임워크"}
python = set(["김프로", "김코딩"]) #set을 생성하는 다른 방법

# 교집합 &, intersection
print(java&python) #{'김프로', '김코딩'}
print(java.intersection(python))

# 합집합 |, union
print(java|python) #{'김코딩', '프레임워크', '김프로'}
print(java.union(python)) #{'김코딩', '프레임워크', '김프로'}

# 차집합 -, difference
print(java-python) #{'프레임워크'}
print(java.difference(python)) #{'프레임워크'}
print(python - java) #set()

값 추가와 삭제

  • 추가: add
  • 삭제: remove
# 값 추가 add
print(python) #{'김코딩', '김프로'}
python.add("스프링")
print(python) #{'김코딩', '스프링', '김프로'}

# 값 삭제 remove
print(python) #{'김코딩', '스프링', '김프로'}
python.remove("김프로")
print(python) #{'스프링', '김코딩'}

🧱 자료구조

  • 현재 타입: type
  • 타입 변경: list(menu), tuple(menu)
# 집합으로 먼저 생성
menu = {"아메리카노", "라떼", "에이드"}

# 현재 타입 확인
print(menu, type(menu)) #{'아메리카노', '라떼', '에이드'} <class 'set'>

# 타입 변경
menu = list(menu)
print(menu, type(menu)) #['라떼', '아메리카노', '에이드'] <class 'list'>

menu = tuple(menu)
print(menu, type(menu)) #('아메리카노', '라떼', '에이드') <class 'tuple'>
profile
나의 개발 저장소

0개의 댓글