python permutations
사용법 itertools 라이브러리 안에 있는 기능 from itertools import permutations a = [1,2,3] p = list(permutations(a,2)) # 2번째 인자부분은, 얻고자 하는 경우의 수의 범위 ex) 2는 (1,2), (1,3), (2,1), (2,3), (3,1), (3,2)가 된다. 근데 이렇게 하면, (1,2) (2,1) 처럼 같은 경우의 수가 불필요하게 반복되는 것을 볼 수 있다. set_p = list(set([tuple(sorted(list(i))) for i in p])) # 이렇게 하면, [(1,2), (1,3), (2,3)]이 출력된다.
python 서로 다른 크기의 리스트 합치기(zip_longest)
서로 다른크기의 리스트 합치는 방법 이 글에서 뜻하는 서로다른 크기의 리스트 합치기란, a = [1,2,3], b = [4,5] 일 때, c = (1,4), (2,5), (3,)으로 만드는 방법을 뜻한다. 방법 같은 크기의 리스트일 때에는, zip이나 numpy를 사용해서 쉽게 합칠 수 있다. 예) a = [1,2,3], b = [4,5,6]일 때, c = (1,4), (2,5), (3,6)을 zip이나 numpy를 사용해 만들 수 있다. 하지만 다른 크기의 리스트일 때, zip을 사용하게되면, c = (1,4), (2,5), (3,)으로 만들어지는게 아닌, (3,)은 맞아떨어지는 짝이 없기때문에 무시하게된다(사라진다). 이때! 사용하는게 zip_longest다. zip_longest에 대한 설명은 따로..
python 딕셔너리 키 중복으로 넣는법
딕셔너리 키를 중복으로 넣는 법 Python dict를 사용하다보면 {"bob":19, "anna":15, "bob":20} 위 딕셔너리처럼 동일한 Key인, bob이 존재할 수 있는 경우가 발생한다. 위 그대로 person = {"bob":19, "anna":15, "bob":20}를 하게되면, person을 print 할 시, {"bob":20, "anna":15}로 나올 것이다. 지금부터 설명할 내용은, 내가 원하는 바는 {"bob":19, "anna":15, "bob":20} 였는데, {"bob":20, "anna":15}로 나올때 {"bob":19, "anna":15, "bob":20}로 딕셔너리에 저장하는 방법이다. class person(object): def __init__(self,nam..
python range, enumerate 차이점
range, enumerate 차이점 먼저 range경우 예시를 보면, tmp = [1,2,3,4,5] for i in range(len(tmp)): print (tmp[i]) >>> 1 2 3 4 5 와 같이 나오게된다. 다음으로, enumerate의 예시를 보면, tmp = [1,2,3,4,5] for i in enumerate(tmp): print (i) >>>(0, 1) (1, 2) (2, 3) (3, 4) (4, 5) 처럼 나온다. ! 이때 반환 타입은 보면 알다시피 tuple 형태 즉, range와 enumerate의 차이점은 range경우에는 index로 접근해야하며, 값과 index를 반환 하려면 코드가 더 추가되는 번거로움이 존재한다. enumerate는 range의 번거로움을 간결하게 ..