본문 바로가기

파이썬13

2차원 리스트 파이써닉하게 출력하기. answer = [ ["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"] ] print("\n".join(map(" ".join, answer))) 2022. 11. 12.
2진수로 표현한 숫자의 1의 개수 세기. def count_one(x): cnt = 0 while x: x &= x - 1 cnt += 1 return cnt 이항 비트 연산을 이용한 log(n) 연산. 원리는 간단하게 직접 해보면 안다. ex = 7 좌항(10진법) => 우항(2진법) while loop1 7 => 111 7 - 1 => 110 7 & 6 = 11 while loop2 3 => 11 3 - 1 => 10 3 & 2 = 1 while loop3 1 => 1 1 - 1 => 0 1 & 0 = 0(condition end) 3번의 연산=> 1의 개수가 세개이다. 2022. 10. 27.
2차원 리스트를 회전시키기 2차원 리스트를 회전시켜야 할 때가 종종 있다.(특히 PS나, 코딩테스트에서 자주 등장한다.) 매우 난해한 문법이지만, 파이썬에서는 2차원 리스트를 단 한줄로 회전 시킬 수 있다. original = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 시계방향 회전. rotated = list(zip(*original[::-1])) rotated2 = list(zip(*original))[::-1] print("시계방향 회전") print(*rotated, sep="\n") print("반시계방향 회전") print(*rotated2, sep="\n") >>> 시계방향 회전 (7, 4, 1) (8, 5, 2) (9, 6, 3) 반시계방향 회전 (3, 6, 9) (2, 5, 8) (1, 4, .. 2022. 10. 25.
리스트에서 중복을 제거하기. 리스트에서 어떤 중복된 값을 제거해야할 때, 주로 for문을 사용해 왔다. 그러나 코드가 길어지고 별도의 리스트를 생성해야 하는 단점이 있었다. 이번에 간결한 방법을 알게되어 소개한다. # 기존 사용방법 mylist = ["a", "b", "a", "c", "c"] new_list = [] for i in mylist: if i not in new_list: new_list.append(i) mylist = new_list print(mylist) >>> ['a', 'b', 'c'] 아래는 더 간결한 새로운 방법이다. mylist = ["a", "b", "a", "c", "c"] mylist = list(dict.fromkeys(mylist)) print(mylist) >>>["a", "b", "c"] .. 2022. 8. 23.