1 life 2 live

파이썬 기초 프로그래밍(5-2) - 자료구조1 (리스트 및 실습) [20.7.15] 본문

파이썬

파이썬 기초 프로그래밍(5-2) - 자료구조1 (리스트 및 실습) [20.7.15]

대희투 2020. 7. 15. 20:40

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)

728x90
반응형
Comments