전 주로 leetcode에서 Python으로 코테 준비를 하는데요, 여러 사람들의 답을 보다보니 경우에 따라 유용하게 쓰일 수 있는 파이썬 문법들이 종종 보여 정리해보려고 합니다.
문제를 풀다 발견하는 대로 지속적으로 업데이트 될 예정입니다.
Matrix
를 회전시키는 문제def spiralOrder(self, matrix):
return matrix and [*matrix.pop(0)] + self.spiralOrder([*zip(*matrix)][::-1])
*
는 javascript에서 ***
와 비슷하게 deconstructuring을 해줍니다. *[1,2,3]
을 수행하면 1 2 3
이 나옵니다zip()
은 같은 위치에 있는 element들을 tuple로 묶어줍니다. zip([1,2,3],[4,5,6])
을 수행하면 (1,4) (2,5) (3,6)
이 나옵니다[::-1]
은 list.slice()
가 되며 start
와 end
가 명시되지 않았으니 전체 배열을 지칭하며 step
이 -1이므로 역순으로 뒤집힌 배열이 반환됩니다. list.reverse()
를 수행할 경우 in-place에서 reverse되기 때문에 순서가 뒤집힌 배열을 새로 생성하고 싶을 때 유용하게 사용할 수 있을 것 같습니다.element
가 리스트에 있는지 확인하기listA = [1,1,2,3]
if len(set(listA)) == len(listA):
print("No duplicate element")