*shell 환경이 아닌 스크립트(script) 환경에서 작업했기 때문에 print 함수로 출력했습니다.
shell 환경이라면 print 함수는 생략 가능합니다.
1. 할당과 복사
a = [0, 0, 0, 0, 0] b = a print(b) print(a) |
[0, 0, 0, 0, 0] [0, 0, 0, 0, 0] |
보기에 b=a와 같이 리스트를 다른 변수에 할당하면 리스트는 두 개가 될 것 같지만 실제로는 한 개의 리스트입니다.
print(a is b) 와 같이 is 연산자로 비교해보면 True가 출력이 되는데, 이는 변수 이름만 다른 것이지 a와 b는 같은 객체라는 의미입니다.
b[2] = 99 print(a) |
[0, 0, 99, 0, 0] |
a와 b는 같으므로 b[2] = 99와 같이 리스트 b의 요소를 변경하면 리스트 a와 b에 모두 반영됩니다. |
리스트 a와 b를 완전히 두 개로 만들기 위해선 copy 메서드로 모든 요소를 복사해야 한다.
a = [0, 0, 0, 0, 0] b = a.copy() print(a, b) |
[0, 0, 0, 0, 0] [0, 0, 0, 0, 0] |
2. for 반복문으로 요소 출력하기
a = [1, 2, 3, 4, 5] for i in a: print(i) |
1 2 3 4 5 |
for i in [1, 2, 3, 4, 5]: print(i) |
1 2 3 4 5 |
3. 인덱스와 요소를 함께 출력하기 ( enumerate ) 사용
- for 인덱스, 요소 in enumerate(리스트)
- for 인덱스, 요소 in enumerate(리스트, start=숫자): 또는 for 인덱스, 요소 in enumerate(리스트, 1)
a = [38, 21, 53, 62, 19] for index, value in enumerate(a): print(index, value) |
0 38 1 21 2 53 3 62 4 19 |
a = [38, 21, 53, 62, 19] for index, value in enumerate(a, start = 1): print(index, value) |
1 38 2 21 3 53 4 62 5 19 |
4. while 반복문으로 요소 출력하기
while 반복문으로 리스트의 요소를 출력할 때는 변수 i를 인덱스로 활용합니다. 먼저 변수 i를 0으로 만들어주고, i < len(a)처럼 i가 리스트의 길이(요소 개수) 직전까지만 반복하도록 만듭니다. 즉, 리스트의 인덱스는 0부터 시작하고 마지막 인덱스는 리스트의 길이보다 1이 작으므로 <를 사용합니다. 만약 i <= len(a)처럼 <=을 사용하면 리스트의 범위를 벗어나게 되므로 주의해야 합니다.
a = [1, 2, 3, 4, 5] i = 0 while i < len(a): print(a[i]) i += 1 |
1 2 3 4 5 |
5. 가장 작은 수와 큰 수 구하기
# 가장 작은 수 구하기 a = [1, 2, 3, 4, 5] smallest = a[0] for i in a: if i < smallest: smallest = i print(smallest) |
1 |
# 가장 큰 수 구하기 a = [100, 2, 35, 50, 80] largest = a[0] for i in a: if i > largest: largest = i print(largest) |
100 |
먼저 리스트 a의 첫 번째 요소 a[0]를 변수 smallest에 저장합니다. 그리고 for로 리스트의 요소를 모두 반복하면서 i가 smallest보다 작으면 smallest에 i를 할당합니다. 즉, 숫자를 계속 비교해서 숫자가 작으면 smallest를 바꾸는 방식입니다. 가장 큰 수는 부등호를 반대로 합니다. |
|
a = [100, 2, 35, 50, 80] a.sort() # default 값 오름차순(ASC) print(a[0]) a.sort(reverse=True) # 오름차순의 역순 (=내림차순, DESC) print(a[0]) |
2 100 |
앞에서 리스트를 정렬하는 sort 메소드를 언급했습니다. 리스트를 작은 순서대로 정렬(오름차순)하면 첫 번째 요소가 가장 작은 수입니다. 반대로 큰 순서대로 정렬(내림차순)하면 첫 번째 요소가 가장 큰 수가 됩니다. | |
a = [100, 2, 35, 50, 80] print(min(a)) print(max(a)) |
2 100 |
파이썬에서 제공하는 내장함수인 min과 max를 활용해서 쉽게 구할 수 있다. |
6. 요소의 합계 구하기
a = [10, 10, 10, 10, 10] x = 0 for i in a: x += i print(x) |
50 |
# 파이썬 내장 함수 이용 print(sum(a)) |
50 |
'Programming > Python' 카테고리의 다른 글
[코딩도장-파이썬] 2차원 리스트 사용하기 1 (0) | 2020.11.20 |
---|---|
[코딩도장-파이썬] 리스트(List)와 튜플(Tuple) 응용하기 3 (0) | 2020.11.19 |
[코딩도장-파이썬] 리스트(List)와 튜플(Tuple) 응용하기 1 (0) | 2020.11.18 |
[코딩도장-파이썬] 터틀 그래픽스 (0) | 2020.11.17 |
[코딩도장-파이썬] 중첩 루프 (0) | 2020.11.16 |