1 life 2 live

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

파이썬

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

대희투 2020. 7. 14. 22:45

1. 자료구조 개요

■ 5명의 성적을 처리해야 한다.

   º 다섯 명 개개인의 성적을 저장해야 하고,

   º 다섯 명의 성적 평균과 최고/최하점을 계산해야 한다!

 

■ 5개의 변수가 필요하다!

   º score1

   º score2

   º score3

   º score4

   º score5

 

■ 50명의 성적을 처리해야 한다면?

   º 오십 명 개개인의 성적을 저장해야 하고,

   º 오십 명의 성적 평균과 최고/최하점을 계산해야 한다!

 

■ 50 개의 변수가 필요한가…?

 º score1, score2, score3, score4, score5, …
   score10, score11, score12, …
   score 30, score31, score32, …, score50?

 

■ 만약 500명이라면…?

 

■ 여러 값들을 효과적으로 저장, 처리하기 위한 방안이 필요!

 

■순서가 중요한 자료의 모음

   º 리스트

   º 튜플

 

■ 순서는 없지만 유일성(uniqueness)이 중요한 자료의 모음

   º 딕셔너리

   º 집합

 

 

 

2. 리스트 (List)

■ 다수의 자룔르 저장하기 위한 구조

■ 다수의 변수를 모아놓은 것

 

■ 선언 방법

 

■ 리스트 선언 예제

   º 빈 리스트

   º 숫자로 이루어진 리스트

   º 문자열로 이루어진 리스트

   º 숫자와 문자열이 혼합된 리스트

   º 리스트를 요소로 가지는 리스트

 

■ 리스트 

   º 이 리스트의 특정 위치에 자리한 요소를 표현하고 싶다면?

   º 해당 위치를 표기하는 ‘인덱스’를 통하여 표현!

 

■ 리스트 인덱싱

   º 리스트[인덱스]

      • 리스트의 ‘인덱스’ 위치에 자리하고 있는 요소를 표현

 

■ 리스트 인덱스

   º year[0], year[1]: year의 첫 번째, 두 번째 요소

   º year[-1], year[-2]: year의 끝에서 첫 번째, 끝에서 두 번째 요소

   º 요소의 개수를 벗어난 인덱스로 접근하면?

 

■ 리스트의 일부를 추출하고 싶다면?

   º 2010 ~ 2014까지만 추출하여 출력하고 싶다면 어떻게 해야 할까?

   º 조금 더 간략한 방법은 없을까?

      • 리스트의 처음부터 4번 위치까지 한번에 표시할 수 있는 방법?

 

■ 슬라이싱!

 

■ 슬라이싱 문법 → 리스트 [시작:종료:단위]

   º 시작: 슬라이스 시작 위치

   º 종료: 슬라이스 종료 위치 (단, 종료 위치는 포함되지 않음!)

   º 단위: 시작부터 종료까지 이동 단위

 

■ 리스트 [시작:종료]

   º 종료 인덱스 위치는 포함되지 않는다!

   º 예) year[0:4]: 0 ~ 3 까지 위치한 요소들을 추출

   º 예) year[4:8]: 4 ~ 7 까지 위치한 요소들을 추출

 

■ 리스트 [:종료]

   º 종료 인덱스 위치는 포함되지 않는다!

   º 예) year[:8]: 리스트의 처음부터 7 까지 위치한 요소들을 추출

 

■ 리스트 [시작:]

   º 예) year[4:] 리스트의 4 부터 끝까지 위치한 요소들을 추출

 

■ 리스트[시작:종료:단위]

   º 종료 인덱스 위치는 포함되지 않는다!

   º 단위는 양수/음수 모두 가능하다!

   º 예) year[0:4:2]

      • 0~3 까지 위치한 요소들을 2칸씩 이동하며 리스트 추출

      • 결과물: [year[0], year[2]]

   º 예) year[7:4:-1]

      • 7~5 까지 위치한 요소들을 -1칸씩 이동하며 리스트 추출

      • 결과물: [year[7],year[6],year[5]]

   º 예) year[::2]

      • 리스트의 처음부터 시작하여 2칸씩 이동하며 요소들을 추출

      • 결과물: [year[0], year[2], year[4], year[6]]

   º 예) year[::-1]

      • 리스트의 끝에서부터 시작하여 -1칸씩 이동하며 요소들을 추출

      • 결과물: [year[7], year[6], year[5], …, year[0]]

   º 예) year[:4:-1]

      • 리스트의 끝에서부터 시작하여 5번 요소까지 -1칸씩 이동하며 요소들을 추출

      • 결과물: [year[7], year[6], year[5]]

 

■ 아래 구조에서 2012를 표현하고 싶다면?

   º year[2]? year[0]?

 

■ 2차원 접근!

   º year[0][2]

   º year[0][::-1]

   º year[0][1:3]

728x90
반응형
Comments