list for문
python으로 알고리즘 문제를 풀면서 헤맸던 부분이 있다. list-a로 구현해놓고 for-b처럼 구현되길 바랬던 것이다. 혹시나 해서 b처럼 바꿔보니 혹시나가 역시나가 되는 그런 상황이었다,, a는 아예 똑같은 반복인 것 같다.a를 더 편하게 생각해왔지만 둘은 확실하게 다르다. a=[[0]*5]*6 print(a) #[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] b=[[0]*5 for _ in range(6)] print(b) #[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0..
2020. 8. 21.
itemgetter 사용하기
sort문제를 풀 때 key=lambda x:x[1] 이런식으로 풀었었는데 내 기준으로 이것보다 간단한 itemgetter 를 알게되었다. from operator import itemgetter를 써주면 사용할 수 있다. from operator import itemgetter data = [ ("gg", 25, 11), ("sd", 342, 972), ("aa", 36, 616), ("td", 16, 234), ("oi", 95, 435) ] data.sort(key=itemgetter(0)) print(data) #[('aa', 36, 616), ('gg', 25, 11), ('oi', 95, 435), ('sd', 342, 972), ('td', 16, 234)] from operator impo..
2020. 5. 31.
range 사용하기
거의 모든 파이썬 알고리즘 문제풀이 사용되는 range에 대해 알아볼 것이다. +여기서 print(i, end=' ')를 해준것은 print(i)로 하면 한 라인에 하나의 i씩 출력되기 때문에 보기 깔끔하게 하려고 한 것이다..! for i in range(3): print(i, end=' ') #0 1 2 for i in range(0,3): print(i, end=' ') #0 1 2 for i in range(0,3,1): print(i, end=' ') #0 1 2 위의 세 range의 범위는 모두 같다. range(i)이면 범위는 0부터 i-1까지, range(0,i)이면 범위는 0부터 i-1까지, range(0,i,1)이면 범위는 0부터 i-1까지 1씩 커진다. 즉, i만 지정해준다면 defa..
2020. 5. 6.
sorted()와 sort()의 차이
python에서 정렬 문제가 자주 나오고 다른 종류의 문제에서도 정렬이 자주 쓰인다. 여기서 sorted()와 sort()가 쓰이는데 이 두 방법의 차이점은 무엇일까? 먼저, 예시로 설명하자면 a=[3,6,1,4,7] b=sorted(a) print(b) #[1, 3, 4, 6, 7] a=[3,6,1,4,7] a.sort() print(a) #[1, 3, 4, 6, 7] 이렇게 된다. 결과는 당연히 같다. sorted()는 원래의 list는 원래대로 놔두고, 한번 더 list를 가져와 정렬한다. sort()는 원래의 list내에서 정렬이 되는 것이라고 생각하면 된다..! 따라서, sorted()는 메모리 사용량을 두배로 늘어난다고 보면 되고, 속도는 sort()가 빠르다. 때때로 원래의 list를 사용해..
2020. 5. 3.