지금까지는 값을 하나씩만 담았기 때문에 어려움이 없었다
하지만, 여러가지 값을 담아야 할때(가령 학교에서 몇백명의 학생들의 성적을 정리해야 할 때)는
변수를 몇백개 만들어서 처리하는것은 매우 비효율적이다
이럿듯 데이터의 개수가 많아질때는 리스트, 튜플 등 다른 방법을 찾아야한다.
오늘은 그중에 리스트를 알아보자.
리스트(List) : 비슷한 성질을 가진 객체의 나열
위처럼 학생들의 학점만 입력하는데도 몇백개의 변수를 만들려고 하는것은 매우 비효율적이고 힘들다.
이때, students[1000]와 같이 대괄호를 이용해서 몇명의 학생정보가 담길지를 배열형태로 만들어준다
이를 리스트라고 한다.
리스트에서는 '인덱스'라는 개념이 등장한다.
인덱스는 말그대로 '목차'
하지만, 프로그래밍에서는 인덱스가 '1'이 아닌 '0'부터 시작한다.
이처럼 리스트는 '같은 값' '같은 자료형'의 데이터들을 처리할때 사용한다.
위에서는 '실수'
6명의 학생의 학점정보를 a라는 변수에 리스트로 저장하고 출력
리스트의 장점 - 아무리 많은 데이터가 있다고해도 이를 효과적으로 처리 가능
리스트를 이용할때에도 [] 연산자로 개별원소에 접근할 수 있다.
값의 변경도 가능
여기에 흐름제어를 담당하는 '반복문'을 응용하면 더 데이터를 잘 처리할 수 있다.
간단한 반복문을 더한 예시
파이썬의 for문은 C언어의 for문과 사뭇 다른데
'for i in a:' 는 i라는 변수를 선언해서 a안에 있는 원소들을 하나씩 담겠다는 뜻으로
for문의 내용인 sum += i가 작동하면서 학생 6명의 학점을 모두 더한다
그 후 마지막 줄에서 sum을 6으로 나눠 학생학점의 평균을 구한다.
이때, 마지막 len함수는 a의 인덱스 길이를 출력하는 함수, 여기서는 6이 된다.
이제 단순히 학점정보가 아니라 학생들에 대한 정보를 '수학'성적과 '영어'성적으로 나눠 다룬다고 가정해보자.
이때는 2차원 배열, 즉 2차원 리스트 라는것을 사용할 수 있다.
2차원 리스트와 반복문을 이용한 10명의 학생의 영어 평균 점수와 수학 평균 점수를 구하는 코드
2차원 리스트는 C언어에서의 2차원 배열을 사용하는 방법과 같다
11. 조건문(If)과 들여쓰기 (0) | 2020.10.04 |
---|---|
10. 리스트(List)의 기본 함수들 사용해보기 (0) | 2020.10.04 |
8. 파이썬의 객체 지향 프로그래밍(OOP) (0) | 2020.10.04 |
7. 파이썬으로 알고리즘 문제 풀어보기 (0) | 2020.10.04 |
6. 기본 입출력 (0) | 2020.10.04 |