[python] 파이썬 - 리스트의 객체 복사 개념 - 예시
파이썬은 모든 것이 객체다. 숫자, 문자까지도 객체다. 숫자, 문자가 리스트, 딕셔너리 같은 객체와의 차이점이라면 불변 객체라는 차이뿐이다. 그러다 보니 별도로 값을 복사하지 않는 한, 변수에 값을 할당하는 모든 행위는 값 객체에 대한 참조가 된다. 즉, 참조가 가리키는 원래의 값을 변경하면 모든 참조, 즉 모든 변수의 값 또한 함께 변경된다. 다음 예시를 보면 쉽게 이해가 간다. b는 a를 참조하고 있기 때문에 a가 변경되면 b도 같이 변경된다. 반면 값 자체만을 복사하는 방법으로 [:] 또는 copy()를 사용하게 되면, a가 변경되어도 c와 d는 변경되지 않는다. >> a = [1,2,3] >> b = a >> c = a[:] >> d = a.copy() >> a += [4] >>print(a, b..
2021. 4. 5.
[python] 파이썬 - 순열과 조합(itertools 활용 또는 dfs 활용 코드) 예제
itertools을 활용하면 순열과 조합을 쉽게 작성할 수 있다. 튜플의 형태로 결과를 리턴한다. >> import itertools >> a= [1,2,3] >> # permutations >> list(itertools.permutations(a)) [(1,2,3),(1,3,2),(2,1,3),(2,3,1),(3,1,2),(3,2,1)] >> list(itertools.permutations(a,2)) [(1,2),(1,3),(2,1),(2,3),(3,1),(3,2)] >> # combinations >> list(itertools.combinations(a,2)) ## 'combinations()' requires r-value. [(1,2),(1,3),(2,3)] #첫번째 인자로 리스트가 아닌 튜..
2021. 4. 5.