[파이썬] 기초 공부, 리스트, 사전, 튜플, 세트, 자료구조의 변경

 


 일단, 1:57분까지 공부학습량이다.  유튜브 강의 : https://youtu.be/kWiCuklohdY

퀴즈를 풀긴 푸는데, 과정이 참, 효율적이지 못한거 같다. 효율적이기 위해 공부하는 거겠지?

1. 리스트

------------------------  리스트(1)

# 리스트 : 순서를 가지는 객체의 집합
# 지하철 칸별로 10명, 20명, 30명

subway = [102030# 1개의 변수에 값을 리스트로서 값을 출력
print(subway)
subway = ["유재석","박명수","조세호"]
print(subway)

print(subway.index("조세호")) #조세호는 몇 번째 칸에 타고 있는가?

subway.append("하하"#하하씨가 다음 정류장에서 다음 칸에 탐, 맨 뒤에  붙음
print(subway)

subway.insert(1,"정형돈"#정형돈을 유재석과 박명수 사이에 넣음
print(subway)

print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
print(subway)
print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
print(subway)
print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
print(subway)









---------------------------- 리스트(2)

# 리스트 : 순서를 가지는 객체의 집합
# 지하철 칸별로 10명, 20명, 30명

subway = [102030# 1개의 변수에 값을 리스트로서 값을 출력
print(subway)
subway = ["유재석","박명수","조세호"]
print(subway)

print(subway.index("조세호")) #조세호는 몇 번째 칸에 타고 있는가?

subway.append("하하"#하하씨가 다음 정류장에서 다음 칸에 탐, 맨 뒤에  붙음
print(subway)

subway.insert(1,"정형돈"#정형돈을 유재석과 박명수 사이에 넣음
print(subway)

print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
print(subway)
# print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
# print(subway)
# print(subway.pop()) #맨뒤에 있는 사람을 꺼냄
# print(subway)

subway.append("유재석")
print(subway)
print(subway.count("유재석"))  #같은 이름의 사람이 몇명 있는가?

num_list = [5,2,4,3,1]
num_list.sort()  #내림차순정렬
print(num_list)

num_list.reverse() #뒤집기
print(num_list)

num_list.clear()  #클리어
print(num_list)

mix_list = ["조세호"20True]  #리스트 다양한 자료와 함께 사용 가능
print(mix_list)

subway.extend(mix_list)   #리스트 확장
print(subway)












2. 사전

cabinet = {3:"유재석"100:"김태호"}  #3번(key)를 유재석(value)이 받음 100번(key)를 김태호(value)이 받음 

print(cabinet[3])
print(cabinet[100])

print(cabinet.get(3))
print(cabinet.get(100))

print3 in cabinet# 사전에 값이 있는지 없는지 확인 True
print5 in cabinet# False

print(cabinet.get(5))  #값이 없으면 None으로 출력후 코드 계속 실행
print("hi")

print(cabinet.get(5), "사용가능")  #값이 없으면 '사용가능'으로 출력후 코드 계속 실행
print("hi")

print(cabinet[5])  #key5가 없기 때문에 에러를 내고 끝난다. 
print("hi")












-----------------------------------  


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())   #key들만 출력
print(cabinet.values())   #value값만 출력
print(cabinet.items())  #같이 출력

cabinet.clear()   #모두 갔음, 클리어
print(cabinet)









2, 튜플 (변경안되나 속도가 빠름)


menu = ("돈까스","치즈까스")   #튜플 사용시 ()가로 사용
print(menu[0])
print(menu[1])

# name = "김종국"
# age = 20
# hobby = "코딩"
# print (name, age, hobby)

(nameagehobby) = ("김종국"20"코딩")  #튜블을 사용하여 변수를 한꺼번에 선언 
print(nameagehobby






3. 세트 (집합)

# 집합 (set) , 중복 안됨, 순서는 없음
my_set = {1,2,3,3,3}
print(my_set)

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

#교집합을 출력 (java와 python을  모두 할수 있는 사람)
print(java & python)
print(java.intersection(python))

#합집합 (jave도 하고 python을 할수 있는 개발자)
print(java|python)
print(java.union(python))

#차집합 (java는 할줄 알지만 python은 할 줄 모르는 개발자)
print(java-python)
print(java.difference(python))

#python을 할 줄 아는 사람이 늘어남
python.add("김태호")
print(python)

#javq를 까먹음 
java.remove("김태호")
print(java)








4. 자료구조의 변경

#자료구조의 변경
menu = {"커피","우유","주스"}
print(menutype(menu))

menu = list(menu)
print(menutype(menu))

menu = tuple(menu)
print(menutype(menu))

menu = set(menu)
print(menutype(menu))






5. 퀴즈

--------------------- 내가 풀은 코드

"""
댓글 작성자들 추첨프로그램 : 1명 치킨쿠폰, 3명 커피쿠폰

- 조건 : 댓글은 20명이 작성하였음, 아이디는 1~20이라고 가정
- 조건 : 무작위 추천, 중복은 불가
- 조건 : random 모듈의 shuffle과 sample을 활용

출력예제
-- 담청자 발표 --
치킨 당첨자 : 1
커피 당첨자 : [2, 3, 4]
-- 축하합니다 --

활용예제
from random improt *
lst = [1,2,3,4,5]
print(lst)
shuffle(lst)
print(lst)
print(sample(lst,1))
"""

from random import *

user_id = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]   #list로 배열한다. 
shuffle(user_id)  # 일단, 섞는다.
user_id = set(sample(user_id,4))   #숫자 4개를 추출하고, 기존변수에 SET으로 저장한다.
user_id2 = set(sample(user_id,1))  
#다시 저장된 변수에서 1개를 추춣, 새로운 변수에 SET으로 저장
print("-- 담청자 발표 -- \n치킨 당첨자 : " + str(user_id2) + "\n커피 당첨자 : " + 
str(user_id-user_id2) + "\n-- 축하 합니다 --")

** 답이 나오기는 하나 오류인지 뭔지 모르곘음, 잔소리 있음.






------------------------  영상에서 알려준 코드


users = range(1,21#1부터 20까지 숫자를 생성
# print(type(users))
users = list(users)
# print(type(users))
print(users)
shuffle(users)
print(users)

winners = sample(users,4# 4명 뽑음
print("-- 당첨자 발표 --")
print("치킨 당첨자 : {0}" .format(winners[0]))
print("커피 당첨자 : {0}" .format(winners[1:]))
print("-- 축하합니다. --")


** ranger의 이용과, print를 할 때 format을 활용할 생각을 못했다. 이게 오류가 없고..







댓글 쓰기

2 댓글

  1. 답글
    1. 안녕하세요... 라이브님 블로그가 너무 보기좋네요. 저는 엉망이라.. 하하.

      삭제