2024. 7. 6. 20:24ㆍ3층 1구역 - 개발의 장/Python 프로그래밍 핵심 개념
1. 서론
my_num = 7
my_str = "Hello!"
my_bool = True
파이썬에 대해 배우면서 위와 같이 왼쪽 변수에 오른쪽 값을 '하나씩' 담았었다.
그러면 하나의 변수에 여러 개의 값을 담고 싶다면 어떻게 해야 할까?
2. 본론
리스트(List)라는 것을 사용해보고자 한다.
numbers = [2, 3, 5, 7, 11, 13]
names = ["윤수", "혜린", "태호", "영훈"]
위와 같이 numbers변수는 numbers 리스트 라고 부르며, 그 안에 2, 3, 5, 7, 11, 13은 하나하나 요소라고 한다.
names 또한 리스트 라고 하며 '윤수', '혜린', '태호', '영훈'은 하나하나 요소이다.
리스트에 저장되어 있는 요소의 순서를 인덱스라고 하고, 인덱스를 통해 요소를 받아오는 것을
인덱싱(indexing)이라고 한다.
print(names[1])
위 코드의 결과는 무엇이 나올까?
?? 윤수가 나올 줄 알았는데 혜린이 결과로 나왔다.
이유는 리스트에 담겨있는 요소는 0부터 인덱스가 매겨진다.
그러니까 윤수가 결과로 나오기 위해선
print(names[0])
위와 같이 작성해야 한다.
num_1 = numbers[1]
num_3 = numbers[3]
print(numbers[1] + numbers[3])
print(num_1 + num_3)
각각 num_1, num_3변수에 numbers리스트의 1번 인덱스, 3번 인덱스 값을 넣어주었다.
결과는 어떻게 나올까??
numbers 리스트를 보면 현재 인덱스 5까지 숫자가 저장되어 있는데
만약 인덱스를 초과하는 값을 불러오면 어떻게 될까?
print(numbers[6])
인덱스의 범위를 초과하여 에러가 나온다.
그러면 인덱스는 0이 끝일까? 파이썬에는 마이너스(-) 인덱스가 존재한다.
print(numbers[-1])
print(numbers[-2])
print(numbers[-6])
print(numbers[-7])
그러면 -7 인덱스를 불러오게 되면??
역시 인덱스의 범위를 초과하여 에러가 나온다.
이번에는 요소를 하나씩 사용하는 것이 아니라 리스트의 일부를 통째로 잘라서 사용하는 방법을 알아보자.
리스트를 자르는 것을 리스트 슬라이싱(list slicing)이라고 한다.
print(numbers[0:4])
print(numbers[2:])
print(numbers[:3])
각각 결과를 예상해보자.
0:4 >> 인덱스 0번 요소부터 인덱스 4번 요소까지 출력될 것 같다.
2: >> 인덱스 2번 요소부터 인덱스 끝번 요소까지 출력될 것 같다.
:3 >> 인덱스 처음 요소부터 인덱스 3번 요소까지 출력될 것 같다.
결과를 보면?
결과가 예상한 것처럼 나오지 않았다.
0:4는 인덱스 0번 요소부터 인덱스 3번 요소까지 출력한다.(0이상 4미만)
2:는 예상한 거 처럼 나왔다.
:3은 인덱스 처음 요소부터 인덱스 2번 요소까지 출력되었다.(3미만)
이렇게 리스트 슬라이싱을 통해 만든 리스트를 새로운 리스트 변수에 넣어서 결과를 살펴볼 수도 있다.
new_list = numbers[:3]
print(new_list[2])
인덱스의 요소를 새로운 값으로 바꾸어 줄 수 있다.
numbers[0] = 7
원래 0번 인덱스의 요소는 2였는데 7로 바뀌었다.
numbers[0] = numbers[0] + numbers[1]
이번에는 0번 인덱스 요소의 값과 1번 인덱스 요소의 값을 더해보자.
원래 0번 인덱스 요소의 값은 2였고, 1번 인덱스 요소의 값은 3이다.
2 + 3이므로 0번 인덱스 요소의 값은 5로 바뀔 것이다.
3. 결론
'3층 1구역 - 개발의 장 > Python 프로그래밍 핵심 개념' 카테고리의 다른 글
25. 파이썬 - list3 (0) | 2024.07.07 |
---|---|
24. 파이썬 - list2 (0) | 2024.07.06 |
22. 파이썬 - elif (0) | 2024.07.06 |
21. 파이썬 - if2 (0) | 2024.07.06 |
20. 파이썬 - if1 (0) | 2024.07.06 |