23.03.24 WIL

Vinyl Stage·2023년 3월 24일
0

WIL

목록 보기
2/7

금주 얻은 내용을 정리해보자

비트연산자 ~

비트연산자 NOT으로 이진수에서 각 비트를 반전시킨다.
-~n이라고 하면 n-1이 되고 ~-n이면 n+1이 된다.

List Comprehension

이는 파이썬에서 리스트를 간단하게 생성하는 방법주 ㅇ하나로 기존의 반복문과 조건문을 이용한 방법보다 더 간결하고 직관적인 코드를 만들게 해준다.

[표현식 for 항목 in iterable 객체 if 조건문]

으로 사용되는데

표현식은 항목을 변환하고
iterable 객체는 반복가능한 객체(List, Tuple, Dictionary, Set등의 데이터타입)
if조건문은 선택적으로 사용할 수 있으며, 조건문True일 경우에만 표현식이 실행된다.

Generator expression

이는 List Comprehension과 비슷하지만 []대신 ()을 사용하여 제너레이터 객체를 생성하는 것이다.
리스트 컴프리헨션과는 다르게 모든 값을 메모리에 미리 저장하지 않고 필요할 때마다 생성하기 때문에 메모리절약 측면에서 큰 이점을 제공한다.

이 표현식에는 for loop와 같은 반복문에서 직접 사용될 수 있다.

sorted와 sort

모두 리스트를 정렬하는 함수이다.
sorted는 기존 리스트를 변경하지 않고 새로운 정렬된 리스트를 반환한다.
형식은

sorted(iterable, key=None, reverse=False)

iterable은 정렬하고자 하는 iterable 객체(리스트, 튜블등과 같은)이며 key는 정렬에 사용될 함수를 지정하는 매개변수, reverse는 내림차순으로 정렬할지 여부를 지정하는 매개변수이다.

sort는 원본리스트를 직접 정렬한다.

list.sort(key=None, reverse=False)

로 사용되는데 list는 정렬하고자 하는 리스트 객체이고 나무지는 sorted와 동일하게 동작한다.

이 둘의 차이는

예를들면

sorted_lst = sorted(lst)
print(sorted_lst) # [1, 2, 3]
print(lst) # [3, 2, 1] (변경되지 않음)

변경되지 않는 것이고

lst.sort()
print(lst) # [1, 2, 3] (원본 리스트가 변경됨)

이런식으로 변경되는 것이다.

rjust(width, fillchar), ljust(), zfill()

Method는 문자열을 지정된 길이(width)로 오른쪽 정렬하여 반환한다. 문자열의 길이가 width보다 작다면 남은 공간을 fillchar문자로 채운다.
이 때 fillchar은 매개변수로 지정할 수 있다.

이와 비슷한 Method로는 왼쪽정렬을 하는ljust()와 가운데 정렬을 하는center(), 그리고 zfill()는 문자열이 지정된 길이보다 짧을 경우 왼쪽을 0으로 채운다.

s = 'Hello'
print(s.rjust(10)) # ' Hello'
print(s.rjust(10, '-')) # '-----Hello'

이런식으로 작동이 되는데 둘째줄에 '-'를 넣었으므로 그 공백만큼 채워진 것이다. 여기선 공백표현이 안되네

zfill()의 예를들면

s = '123'
s = s.zfill(5,'0')
print(s) # 출력 결과: '00123'

이런식으로 5자로 출력하는데 입력한 수가 '123'세개이므로 나머지를 '0'으로 채운 것이다.
이렇게 rjust()처럼 fillchar을 사용해서 지정할 수도 있다.

profile
Life is Art

0개의 댓글