파이썬 리스트 관련 질문 드립니다ㅠㅠ
조회수 527회
안녕하세요
파이썬으로 작업을 하던 도중 도저히 해결이 되지 않아서 문의 드립니다
예를들어
어떤 리스트 a와 b가 있을때
a=[1,2,3,4,5]
b=[6,7,8,9,10]
이면
특정 지점부터 특정지점까지의 원소를 두 리스트가 교환하기 위해서는 어떻게 해야하는지 도움을 주실 수 있을까요?
ex) (첫번째부터 네번째 원소까지 서로 교환)
a=[6,7,8,9,5] b=[1,2,3,4,10] 이런식을 여쭈어 보는거에요!
리스트를 새로 만들어서 하는 방법말고 직접 바꾸는 방법도 있을 것이라고 생각해서 이렇게 질문 드립니다!
감사합니다!
2 답변
-
안녕하세요! 만약 리스트의 길이가 같다면 이렇게 하면 될것 같아요
zip으로 묶고,
enumerate로 index 값을 얻고,
a, b = b, a 와 같이 스왑했습니다.
a=[1,2,3,4,5] b=[6,7,8,9,10] def change(num): for i, (l, m) in enumerate(zip(a,b)): a[i], b[i] = m, l if i == num-1: break change(3) print(a, b) # a = [6, 7, 8, 4, 5] # b = [1, 2, 3, 9, 10]
수고하세요.
-
파이썬에서 swap 은 간단합니다.
아래의 예제를 보고 직접 해보시기 바랍니다.
a = [1,2,3,4,5] b = [6,7,8,9,10] a[0], b[0] = b[0], a[0] # a -> [6, 2, 3, 4, 5] # b -> [1, 7, 8, 9, 10] a[0], b[0], a[1], b[1] = b[0], a[0], b[1], a[1] # a -> [6, 7, 3, 4, 5] # b -> [1, 2, 8, 9, 10]
댓글 입력