📁 (archived) 2020년 11월 11일 - 2020년 11월 15일 TIL

Lynn님이 번아웃 때 푹 쉬어야 한다는 말씀이 무엇인지 절실히 깨달았네요.
하루종일 핸드폰만 했지만 이렇게 쉬고 나니 공부를 다시 하고 싶어졌어요ㅎㅎ

TIL

2020년 11월 11일

처음 시작하는 파이썬 6장 반복문, 7장 튜플과 리스트 공부
  • for문과 while문에서 break가 걸리지 않고 정상적으로 돌았다면 else문이 실행된다.
  • () 없이 튜플을 만들 때에는 ,를 붙여서 “튜플을 생성하겠다”고 명시해줘야 한다. 만들려는 요소가 2개 이상이면 마지막에는 ,를 붙이지 않는다.
  • 문자열에 list()를 씌우면, 문자 시퀀스인 문자열을 문자 하나로 쪼개 리스트의 요소로 변환한다.
list("abc") # ["a", "b", "c"]
  • 리스트와 문자열 슬라이스 시 잘못된 인덱스를 지정해도 예외가 발생하지 않는다. 단순 유효 범위를 판단하기 위한 장치일 뿐이다.
  • 슬라이스한 요소들은 리스트, 튜플, 문자열 등 순회 가능한 값으로 재할당할 수 있다. 이 때 길이는 같지 않아도 된다.
num = [1, 2, 3, 4, 5]
num[0:2] = "cat"        # ["c", "a", "t", 3, 4, 5]
num[3:5] = (1, 2, 3)    # ["c", "a", "t", 1, 2, 3, 5]
  • 리스트를 복사하는 방법으로는 lst.copy(), list(lst), lst[:]가 있다. 하지만 이 방법은 리스트의 요소가 모두 불변일 경우에만 제대로 작동한다.
  • 만약 리스트 요소 중 튜플, 딕셔너리 등과 같은 객체가 있을 경우 원래 객체를 참조하기 때문에 객체가 변한다면 복사본도 변한다. 그러므로 이 경우는 lst.deepcopy()로 복사해주어야 한다.
  • 비교연산자는 두 리스트의 같은 위치의 항목기리 비교한다. 만약 a가 리스트 b보다 짧고, 공통 부분은 모두 같다면 a는 b보다 작다고 정의한다.
  • 튜플은 컴프리헨션이 없다. ()로 하는 것은 제너레이터 컴프리헨션이다.

위로 올라가기💨


2020년 11월 13일

처음 시작하는 파이썬 8장 딕셔너리와 셋 공부
  • dict()로 두 개의 값으로 이루어진 시퀀스를 딕셔너리로 변환할 수 있다.
ex1 = [['a', 'b'], ['c', 'd'], ['e', 'f']]
ex2 = [('a', 'b'), ('c', 'd'), ('e', 'f')]
ex3 = ['ab', 'cd', 'ef']
dict(ex1) # dict(ex2), dict(ex3)
# >> {'a': 'b', 'c': 'd', 'e': 'f'}
  • 키에 해당되는 값을 가지고 올 때 인덱스로 지정하거나 get()을 쓰면 된다. 다만 get()은 두 번째 인자에 해당 항목이 없을 경우 반환할 값을 지정할 수 있다.
  • **을 이용하여 딕셔너리를 결합할 수 있다. 약간 자바스크립트의 ... 같은 것.
first = {'a': 'apple', 'b': 'banana'}
second = {'a': 'applemango', 'c': 'carrot'}
{**first, **second}
# >> {'a': 'applemango', 'b': 'banana', 'c': 'carrot'}
  • 딕셔너리도 비교연산자를 사용할 수 있지만 인덱스가 없으므로 ==!=만 사용가능 하다.
  • 셋은 어떤 것이 존재하는지만 판단할 때 주로 사용된다.
  • 딕셔너리에 셋을 씌우면 키값만 추출된다.
  • 두 집합의 부분집합 여부를 알아볼 때는 >, < 연산자를, 진부분집합 여부를 알아볼 때는 >=, <= 연산자를 사용한다.
  • 불변한 셋을 만들고 싶다면 frozenset()을 사용하면 된다.

위로 올라가기💨


👋@코딩하는펭귄
파이썬과 웹에 관심 많은 컴공 전공자

GitHubInstagramTIL