1 life 2 live
파이썬 기초 프로그래밍(5-2) - 자료구조1 (리스트 및 실습) [20.7.15] 본문
3. 리스트: 기본 연산
■ 덧셈(+) 연산
º 두 개의 리스트를 더하는 연산
º 예) list3 = list1 + list2 (list1에 list2를 더하여 list3에 할당)
■ 곱셈(*) 연산
º 원본 리스트를 n번 반복하여 새로운 리스트를 생성하는 연산
º 예) list1 * 5 (list1을 5번 반복한 리스트 생성)
■ 다음 연산의 결과는?

↓정답
[3, 5, 4, 6, 3, 5, 4, 6]
■ 수정
º 단일 값의 수정: 인덱스를 이용하여 재할당

↓정답
[1, 3, 5]
[1, 2, 5]
[1, 2, 3]
º 복수 값들의 수정: 슬라이스를 이용하여 재할당
• 어떤 차이가 있는가?


■ 삭제
º 슬라이스와 []를 이용한 요소 삭제
• 인덱스 사용시 어떤 차이가 발생하는가?


º del 함수를 사용한 요소 삭제
• 단일 요소 삭제: del 리스트[인덱스]


• 복수 요소 삭제: del 리스트[슬라이스]


■ 포함 연산자
º 리스트에 값이 포함되어 있는가?
■ in 연산: x in list (x: 값, list: 리스트)
º 특정 값 x가 리스트 list에 포함되어 있는지 여부 판별
• 결과: True, 값이 리스트에 포함되어 있을 경우
• 결과: False, 값이 리스트에 포함되어 있지 않을 경우
■ not in 연산: x not in list (x: 값, list: 리스트)
º 특정 값 x가 리스트 list에 포함되어 있지 않은지 여부 판별
• 결과: True, 값이 리스트에 포함되어 있지 않을 경우
• 결과: False, 값이 리스트에 포함되어 있을 경우
■ 포함 연산자 사용 예)

º 결과

■ 리스트는 자체적으로 추가 기능들을 보유하고 있음!
º IDE에서 리스트에 . 을 찍고 확인해보자!

■ 리스트 메소드 사용 예1)

º 결과

■ 리스트 메소드 사용 예2)

º 결과

4. 랜덤 숫자 생성하기
■ randint(a, b)
º a와 b를 포함하여 두 숫자 사이의 랜덤 정수를 생성
■ randrange(a, b): a와 b-1사이의 랜덤 정수를 반환
º randint(a, b-1)과 동일
■ random(): 0 이상이고 1.0 미만인 랜덤 실수를 반환
■ 예시) 0~9사이 수를 랜덤으로 생성하여 출력하는 프로그램
º 아래 코드를 작성하고 실행하여 보라!
º 매 실행시마다 결과가 다를 것이다.

■ 리스트 컴프리센션 (List Comprehension)
º 리스트를 생성하기 위한 보다 간결한 방법
º 일반적인 방법
• 대상 항목에 존재하는 요소들에 대하여 계산식을 적용 후 리스트 생성

º 조건 적용
• 대상 항목에 존재하는 요소들 중 조건에 적합한 요소들에 대하여 계산식을 적용 후 리스트 생성

■ 리스트 컴프리헨션 예제)

º 결과

5. 실습
■ 실습1) 다섯개의 숫자를 입력받아 리스트에 저장한 후, 입력된 반대 순서대로 출력하기 위한 프로그램을 작성하시오.
º pop() 참고
º reverse() 참고

↓정답1 pop 사용)
a = []
for i in range(5):
num = int(input('%d번째 숫자를 입력하세요: ' %(i+1)))
a.append(num)
for i in range(5):
print(a.pop() , end="\t")
↓정답2 reverse 사용)
a = []
for i in range(5):
num = int(input('%d번째 숫자를 입력하세요: ' %(i+1)))
a.append(num)
a.reverse()
for i in a:
print(i, end='\t')
■ 실습2) 사용자로부터 다섯개의 숫자를 입렫받아 리스트에 저장한 후, 1) 리스트의 내용을 출력하고, 2) 리스트에 저장된 값들을 바탕으로 최솟값, 최댓값, 총합을 계산하기 위한 프로그램을 작성하시오
º 리스트와 반복문을 활용할 것!

↓정답)
a = []
for i in range(5):
num = int(input('%d번째 숫자를 입력하세요: ' %(i+1)))
a.append(num)
print('List: ',a)
sum = 0
min = max = a[0]
for i in a:
sum += i
if i > max:
max = i
if i < min:
min = i
print('min: %d, max: %d, sum: %d' % (min,max,sum))
■ 실습3) 5X5 2차원 리스트에 임의의 수를 생성하여 값을 입력한 후, 1) 각 행의 내용을 출력하고, 2) 각 행에 저장되어 있는 값들의 평균을 계산하기 위한 프로그램을 작성하시오.
º 실행 결과는 매번 다름
º 2차원 리스트 사용법 참고
º random 모듈 import - import random
• randint(), randrange() 참고 - randomint(0,100)

↓정답)
import random
a = []
for i in range(5):
a.append([])
for j in range(5):
a[i].append(random.randint(0,100))
for i in range(5):
print(a[i],'평균 값: ',sum(a[i])/5)
'파이썬' 카테고리의 다른 글
| 파이썬 기초 프로그래밍(6-1) - 자료구조2 (세트) [20.7.17] (0) | 2020.07.17 |
|---|---|
| 파이썬 기초 프로그래밍(5-3) - 자료구조1 (튜플 및 정리) [20.7.16] (0) | 2020.07.16 |
| 파이썬 기초 프로그래밍(5-1) - 자료구조1 (리스트) [20.7.14] (0) | 2020.07.14 |
| 파이썬 기초 프로그래밍(4-2) - 반복문 (While 구문, Break, Continue 및 실습 문제와 정리 [20.7.13] (0) | 2020.07.13 |
| 파이썬 기초 프로그래밍(4-1) - 반복문 (For 구문 및 실습 문제) [20.7.12] (0) | 2020.07.12 |