-
TIL. 17 python 과제 (목차확인)TIL 2020. 10. 25. 19:01728x90
- 파이썬에서 가변객체와 불변객체는 무엇이며, 어떠한 자료형이 있는지 공부한다.
- BTS혹은 레드벨벳의 멤버정보를 딕셔너리로 구현해주세요.
- 스트링, 리스트, 딕셔너리를 반복문으로 돌면서 인자를 출력하는 함수를 작성해보세요.
- for in 반복문을 작성해보고, break, continue의 쓰임새도 알아보세요.
- if와 else를 이용해 조건문을 작성해보세요
- list method 중 append, pop, sort 을 활용한 함수를 작성해보세요
# 파이썬은 모든 데이터를 객체로 관리한다. ==> 객체, 클래스, 인스턴스 따로 학습 및 정리하자
# 파이썬은 모든 데이터를 객체로 관리한다.
# 온갖 종류의 데이터, 함수, 모듈, 클래스, 인스턴스 모두가 다 객체이다.
# 가변 객체
# lsit , dictionary,
# 불변 객체
# int, float, bool, tuple, '문자열'
## '문자열' 또한 불변 객체로 '문자열' 사이의 어떠한 하나의 값만을 바꾸고자 한다면
바꾸고자 하는 문자열을 새로이 할당하여야 한다.
## dictionary 구성하기
BTS = {'리더' : 'RM', '서브보컬' : '진', '리드래퍼' : '슈가', '메인댄서' : '제이홉', '메인댄서' : '지민', '서브보컬' : '뷔', '메인보컬' : '정국'}
print(BTS)
print(BTS.values()) # dict 값만 출력
print(BTS.keys()) # dict 키만 출력
print(BTS.items()) # dict 키 + 값 출력 #print와는 다른 결과
BTS[3] = 33 # dict 마지막에 3 : 33 값 추가.
:: {'리더' : 'RM', '서브보컬' : '진', '리드래퍼' : '슈가', '메인댄서' : '제이홉', '메인댄서' : '지민', '서브보컬' : '뷔', '메인보컬' : '정국', 3 : 33}
del BTS['리더'] # dict '리더' 키와 값 삭제
:: {'서브보컬' : '진', '리드래퍼' : '슈가', '메인댄서' : '제이홉', '메인댄서' : '지민', '서브보컬' : '뷔', '메인보컬' : '정국', 3 : 33}
RV = {'메인보컬' : '웬디', '리더' : '아이린', '메인댄서' : '슬기', '서브보컬' : '조이'}
print(RV)
RV['서브래퍼'] = '예리' # 키 : 값 추가
:: {'메인보컬' : '웬디', '리더' : '아이린', '메인댄서' : '슬기', '서브보컬' : '조이', '서브래퍼' : '예리'}
## 반복문 활용 (들여쓰기 미적용_tistory)
for i in BTS: # 키 값만 출력됨
print(i, end=' ')
:: (['서브보컬', '리드래퍼', '메인댄서, '메인댄서', '서브보컬', '메인보컬'])
for i in BTS.items(): # 키 + 값 출력됨
:: (['서브보컬' : '진', '리드래퍼' : '슈가', '메인댄서' : '제이홉', '메인댄서' : '지민', '서브보컬' : '뷔', '메인보컬' : '정국'])
BTS_list = ['RM', '진', '슈가', '제이홉', '지민', '뷔', '정국']
RV_list = ['웬디', '아이린', '슬기', '조이', '예리']
for i in RV_list:
print(i, end=' ')
:: '웬디', '아이린', '슬기', '조이', '예리'
i = 0
while i < 7 :
for j in BTS_list:
i += 1
print(j,i, end=' ')
print() # while 반복문을 이용한 BTS 리스트 출력
:: RM 1 진 2 슈가 3 제이홉 4 지민 5 뷔 6 정국 7
for i,j in RV.items():
if i == '서브보컬':
print(j,'는', i, '입니다.') # for 반복문으로 서브보컬 찾기 _1
:: 조이 는 서브보컬 입니다.
for i in RV:
if i == '서브보컬':
print(RV[i],'는', i, '이다@') # for 반복문으로 서브보컬 찾기 _2
:: :: 조이 는 서브보컬 이다@
## i 라는 변수가 꺼내 사용할 범위 값에 RV(dictionary)가 들어갈 경우 .values, .keys, .items()를 특별히 기입해주지 않는 이상 i 는 dict의 키 값만을 가져온다!!!
## continue, break 활용하기 (들여쓰기 미적용_tistory)
j = 0
# ['RM', '진', '슈가', '제이홉', '지민', '뷔', '정국']
while 1 :
for i in BTS_list:
j += 1
print(i, j)
if i != '뷔':
continue
else:
print(i)
break
break
break # for를 정지시키는 break ,뷔를 찾은 후 종료 시켜주지 않으면 81번 의 print가 되어 정국 7이 출력됨
break # while을 정지시키는 break
# break 를 만나면 반복문이 종료 (if문을 종료하는건 아님)
## list method
# 수정
A = ['웬디', '아이린', '슬기', '조이', '예리']
A.append('문타리')
print(A) # 리스트 요소하나 추가 (stack 구조)
:: ['웬디', '아이린', '슬기', '조이', '예리', '문타리']
A.extend(['문타리', '타리', '리'])
print(A) # 리스트 끝에 다른 리스트를 연결(확장)
:: ['웬디', '아이린', '슬기', '조이', '예리', '문타리', '문타리', '타리', '리']
A.pop()
print(A) # 리스트의 맨 마지막 요소 삭제
:: ['웬디', '아이린', '슬기', '조이', '예리', '문타리', '문타리', '타리']
A.pop(-3)
print(A) # pop(인덱스번호)로 특정 요소 삭제 가능
:: ['웬디', '아이린', '슬기', '조이', '예리', '문타리', '타리']
A.remove('문타리')
print(A) # remove method로 특정 요소 삭제 가능
:: ['웬디', '아이린', '슬기', '조이', '예리', '타리']
## '특정 값' 이 2개 이상일 경우 왼쪽 기준 가장 빠른 인덱스의 '특정 값' 1개 만 삭제
# 정렬
B = sorted(A)
print(B) # ['슬기', '아이린', '예리', '웬디', '조이', '타리']
print(A) # ['웬디', '아이린', '슬기', '조이', '예리', '타리']
A.sort()
print(A) # ['슬기', '아이린', '예리', '웬디', '조이', '타리']
# sort로 리스트의 요소를 정렬할수 있다 (디폴트 : 오름차순)
## sort() 또는 sort(reverse=False) // 리스트의 값을 작은 순서대로 정렬(오름차순)
# ex : 달리기, 마라톤 등 시간과 관련된 값을 정렬할때 좋음
# ## sort(reverse=True) // 리스트의 값을 큰 순서대로 정렬(내림차순)
# ex : 시험성적 등 점수(?)와 관련된 값을 정렬할때 좋음
## '문자열' 정렬의 경우 사전상(가나다) 순서대로 정렬됨.
## 또한 , sorted 로 정렬함과 동시에 정렬된 리스트를 반환 시킬 수 있는데
## 그냥 sort로 정렬을 할 경우 이전 정렬되지 않은 리스트가 변경되는 것으로 이전 정렬되지 전의 데이터를 확인할 수 없음!
C = [1, 3, 2, 5, 4, 6, 7, 8, 10, 9]
D = sorted(C)
print(D)
:: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(C)
:: [1, 3, 2, 5, 4, 6, 7, 8, 10, 9]
E = sorted(C, reverse=True)
print(E)
:: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
## sorted는 오름차순이 디폴트이다.
## 내림차순을 적용하기 위해선 sort와 비슷하게 sorted(C, reverse=True) reverse=True를 이용하면 된다
L = [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 9]
L.reverse()
print(L)
:: [9, 11, 10, 8, 7, 6, 5, 4, 3, 2, 1]
## reverse
## 리스트의 자료형 함수로 리스트 요소를 역순으로 정렬
## 다른 변수에 할당이 되지 않음..? (질문)
F = reversed(C)
print(F) # <list_reverseiterator object at 0x7fb1ff26a130>
print(list(F))
:: [9, 10, 8, 7, 6, 4, 5, 2, 3, 1]
R = (1, 3, 2, 5, 4, 6, 7, 8, 10, 9)
P = reversed(R)
print(tuple(P))
:: (9, 10, 8, 7, 6, 4, 5, 2, 3, 1)
## reversed 란
## 정렬에 상관없이 순서를 뒤바꿔주는 역할을하는 함수이다 (메서드 NO)
## reversed 사용시 객체가 'reversed'라는? 객체로 반환되는 것이기에 바로 출력이 되지 않는다
## list -> lsit로 반환 // tuple -> tuple로 반환
출처 : dojang.io/
728x90'TIL' 카테고리의 다른 글
TIL.19 set 조작하기 (0) 2020.10.27 TIL. 18 Dictionary 조작하기 (0) 2020.10.26 TIL. 16 문자열 서식 지정자 및 포매팅 사용하기 (0) 2020.10.24 TIL. 15 again python_문자열 메서드 (0) 2020.10.23 TIL.14 Javascript_카드 맞추기 게임 (0) 2020.10.22