[Python(파이썬) 기초] LIST 형식의 정리 Part .2

2020. 8. 6. 00:19업무 스킬/Python(파이썬)

728x90

안녕하세요 윤대리입니다.

저번 포스팅에는 LIST형식의 추가 및 삭제를 마지막으로 알아봤고 오늘은 LIST형식의 복사 및 리스트를 이용한 행열 만들기를 해보도록 하겠습니다.

 

3. List 복사하기

 

자, 여기 [5,4,3,2,1]로 이루어진 "a"라는 변수의 List가 있습니다. "a"를 출력하면 당연히 [5,4,3,2,1]이 나오겠지요.

 

그럼 "a"라는 List를 "b"라는 변수에 복사하려면 어떻게 해야 될까요. 내 당연히 b=a 이런식으로 코드를 짜야 할 겁니다.

그런데 이렇게 복사를하면 한가지 단점이 발생합니다. 코드로 설명을 해보면

[5,4,3,2,1]로 이루어진 "a" list를 [1,2,3,4,5]로 변경하고자 .sort()를 사용하여 Sorting 시켜주었는데 당황스럽게도 "b" List

 

도 같이 Sorting이 되어 [1,2,3,4,5]로 출력이 되어 버렸습니다. 저는 "a" List와 동일한 "b" List를 복사 후 다른 방식으로

 

사용하고자 하였는데 "a", "b"가 동기화 되어 List 복사가 쓸모가 없게 되버렸습니다.

 

그렇다면 "a" List를 복사하면서 독립적인 List로 존재하기 위해선 어떻게 해야 될까요? 

b=a가 아니라 b=a[ : ]로 적어준다면 위 코드와 같이 a를 Sorting시켜준다고 해도 b는 동기화 되지 않고 독립적인 List로 남아 있는 것을 볼 수 있습니다.

 

4. List 나누기

List 나누기는 간단하니 위 코드로 대체 하도록하겠습니다. 매우 간단합니다.

 

5. List 안에 List, 행열 만들기

 

"국어점수"라는 List와 "수학점수"라는 List를 "총점수모음"이라는 List에 합치면 다음과 같이 출력이 됩니다.

 

하지만 List를 합치면 행열로 변환되기 때문에

 

 

총점수모음에서 3번째 값(list는 0부터시작하는 것을 명심) 뽑는다고 "총점수모음[2]"라고 하면 위와 같이 오류가 발생하는 것을 볼 수 있습니다.

 

 

앞서 말했다시피 List안의 List를 만들게 되면 행열로 전환 되기 때문에 3번째 값을 뽑기 위해선

행(여기선 [0]) 열(여기선 [2])라는 코드를 작성해야지 원하던 3번째 값 95를 추출할 수 있습니다.

 

이점은 꼭 주의하셔서 사용하셔야 됩니다.

728x90