Python 뿌시기

[Python 문법 2] - 리스트, 사전, 튜플, 세트, 자료 구조 변경

pjw250 2024. 9. 26. 18:23

### 리스트

subway = ['유재석','조세호','박명수']
print(subway)
print(subway.index("조세호"))
subway.append("하하") # append 함수는 1개의 argument만 추가 가능
print(subway)
subway.insert(1,"정형돈")
print(subway)

print(subway.pop()) # 맨끝에 변수를 꺼냄
print(subway)
print(subway.pop(0)) # 첫 번째 변수를 꺼내고 subway 리스트에서 제거
print(subway)

subway.append("유재석")
print(subway)
print(subway.count("유재석"))

### 정렬 / 순서 뒤집기

num_list = [5,4,3,2,1]
print(num_list)
num_list.reverse() # 뒤집기
print(num_list)
num_list.sort() # 정렬
print(num_list)
num_list.clear()
print(num_list)
del num_list [0] # 리스트의 첫 번째 항목만 삭제
print(num_list)
num_list.remove(3) # 리스트 안의 3 을 삭제
print(num_list)
num_list.append(5) # 리스트 맨 뒤에 값 5를 추가
print(num_list)

### 다양한 자료형에 사용 가능

mix_list = ["조세호", 20, True]
num_list.extend(mix_list) # 리스트 끼리 병합
print(num_list)
 

### 중첩된 리스트에서 인덱싱하기

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(nested_list[1][0])  # 출력: 4 (두 번째 리스트의 첫 번째 항목)

### 사전 (dic, key)

cabinet = {3:"유재석", 100:"김태호"} # key:values
print(cabinet)
print(cabinet[3])
print(cabinet[100])
print(cabinet.get(3)) # key 값이 없으면 none 출력후 연산 지속
print(cabinet.get(100)) # key 값이 없으면 none 출력후 연산 지속
print(cabinet.get(5, "사용가능")) # key 값이 없으면 key:value를 출력
print(cabinet.get(3, "사용가능")) # key 값이 있으면 기존 key의 value 출력

print(3 in cabinet)
print(5 in cabinet)

cabinet = {'a-3':'유재석','b-100':'김태호'}
print(cabinet['a-3'])
print(cabinet['b-100'])
print(cabinet)
cabinet['a-3'] ='김종국'
cabinet['c-20'] ='조세호'
print(cabinet)
del cabinet['a-3']
print(cabinet)

print(cabinet.keys())
print(cabinet.values())
print(cabinet.items())
cabinet.clear()
print(cabinet)

### 튜플 (리스트와 다르게 추가/변경 불가) / 다수 변수 선언 시 사용

menu =("돈까스",'치즈까스')
print(menu[0])
print(menu[1])
# menu.add("생선까스") #오류발생
(name,age,hobby) = ("김종국", 20, "코딩")
print(name)
print(age)
print(hobby)

### 집합 (set)

# 중복 안됨, 순서 없음
my_set = {1,2,3,3,3}
print(my_set) # 3은 1개만 출력됨

java = {"유재석","김태호","양세형"}
python = set(['유재석','박명수'])

print(java & python) # 교집합
print(java.intersection(python)) # 교집합
print(java | python) # 합집합
print(java.union(python)) # 합집합
print(java - python) # 차집합
print(java.difference(python)) # 차집합

python.add('김태호') # 집합내 추가
print(python)
python.remove('김태호') # 집합내 제거

### 리스트[], 튜플(), 딕셔너리{}, 셋트{} 간 자료구조 변경

menu ={'커피', '우유','주스'}
print(menu, type(menu))
menu = list(menu)
menu = tuple(menu)
menu = set(menu)

### 문제 4

# from random import * > shuffle과 sample 함수를 사용하기 위함
# shuffle(list)     > list의 모든 값을 섞음
# sample(list, 1)   > list 중 2번째 값 뽑음

from random import *
id = range(1,21) # 1부터 20까지 숫자 생성
id = list(id)
shuffle(id)
print(id)

sample = sample(id,4)
print(sample)

print("--당첨자 발표--")
print("치킨 당첨자 : {0}".format(sample[0]))
print("커피 당첨자 : {0}".format(sample[1:]))
print("--축하합니다.--")

 

* 출처 나도코딩 [파이썬 코딩 무료 강의 (기본편)]

파이썬 코딩 무료 강의 (기본편) - 6시간 뒤면 여러분도 개발자가 될 수 있어요 [나도코딩] (youtube.com)