30 seconds of Code
왼손코딩 1일1파이썬 9,10,11,12
개발자국S2
2022. 2. 4. 16:51
digitize
def digitize(num):
print([int(i) for i in str(num)])
#list(str(num))을 하면 각각의 숫자가 쪼개어서 리스트로 들어간다. 단 스트링형태로 #['1','2','3']
#하지만, 이건 주어진 조건인 map()을 사용하지 않았다.
#map()은 리스트의 요소를 지정된 함수로 처리해주는 함수이며, 원본 리스트를 변경하지 않고 새 리스트를 생성한다.
#list(map(함수, 리스트)
#tuple(map(함수, 튜플)
def digitize(num):
print(list(map(int, str(num))))
>>> digitize(123) #[1,2,3]
drop
:주어진 리스트와 값을 주었을 때, 리스트에 있는 0번째 요소 ~ 주어진 값을 삭제한 리스트 반환
delete()와 clear()를 활용해서 하려했는데, 이게 훨씬 빨랐군.
clear는 list안에 모든 요소 지우는 것 : list.clear()
def drop(lst, rm=1):
print(lst[rm:])
>>>drop([1,2,3]) #[2,3]
>>>drop([1,2,3],2) #[3]
>>>drop([1,2,3], 42) #[]
drop_right, every_nth
def drop_right(lst, rm=1):
print(lst[:-rm])
def every_nth(lst, nth):
print(lst[nth-1::nth])
>>> every_nth([1,2,3,4,5,6], 2) #[2,4,6]
#반대의 경우, lst[nth-1::-nth]는 [2]가 출력된다.
#왜냐하면 시작값 nth-1은 2이고, 스텝값인 2를 뒤로 가면 리스트를 벗어나기 때문에 시작값만 출력
만약 리스트를 역순으로 출력하고 싶다면
def reverse_order(lst):
lst[::-1]
슬라이싱과 관련된 문제들이 여럿 있는데 아래 사이트가 가장 잘 정리해둔 듯 하다
-리스트의 인덱스는 0부터 시작하지만, 역순은 -1부터 시작한다.
-또한 리스트안에 없는 값으로 슬라이스할 경우, 빈 리스트를 리턴한다.
-step의 경우 리스트[시작값::스텝값], 역순은 리스트[시작값::-스텝값]
https://twpower.github.io/119-python-list-slicing-examples
[Python] 파이썬 슬라이싱(slicing) 기본과 예제
Practice makes perfect!
twpower.github.io
반응형