[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.
[python] 파이썬 - 리스트 정렬 예제( 정렬 및 역정렬, key 와 람다식 활용한 조건 정렬)
코딩테스트에서 정렬은 매우 중요하다. 적재적소에 정렬을 사용하면 문제를 더욱 쉽게 풀 수 있다. 따라서 정렬에 관한 모든 내용을 적어보겠다. - 정렬은 기본적으로 파이썬에서 제공하는 .sort( )와 sorted( )로 가능하다. - .sort( )는 해당 리스트 자체를 바꿔버린다. sorted( )는 정렬된 리스트를 새로 반환한다. 이게 차이점. - 이때 정렬 순서는 문자열의 경우 알파벳순, 숫자의 경우 오름차순이다. - 파라미터 reverse=True를 설정하면 역순 정렬이 가능해진다. >>a = [1,3,5,4,2,7] >>sorted(a) [1,2,3,4,5,7] >>sorted(a, reverse = True) [7,5,4,3,2,1] >>b= ['c', 'd','a' ,'b'] >>b.sort..
2021. 3. 27.