• 검색 결과가 없습니다.

▪ 이러한 자료값을 크기순으로 손쉽게 정렬하는 방법은?

N/A
N/A
Protected

Academic year: 2022

Share "▪ 이러한 자료값을 크기순으로 손쉽게 정렬하는 방법은?"

Copied!
41
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

7장. 구성이 다른 자료 ­ list

7.1. list형

(2)

▪ “홍길동”,”강감찬”,”을지문덕”,…. 과 같은 연속적으로 자료값을 쉽 게 저장하고 추가 삭제할 수 있는 방법은 없을까?

▪ 이와 같은 자료값이 있을때 첫번째, 마지막번째 원소를 쉽게 구하는 방법은 없을까?

▪ 이러한 자료값을 크기순으로 손쉽게 정렬하는 방법은?

2

(3)

list

3

7.1. list형

▪ list 타입

▪ list 선언 방법

▪ list를 만들 때는 대괄호( [ ] )로 감싸주고 안에 들어가는 원소는 쉼표를 통해 구 분

▪ element들은 어떠한 type도 가능

• 심지어 다른 list도 element가 될 수 있음

▪ Empty list : element를 하나도 갖지 않는 list

• 기호 [ ]

[ ] list 기호

variable_name = [ … ]

(4)

[예제 7-1] list의 활용

4

7.1. list형

▪ 변수는 사용되기 전에 반드시 할당되어야 함

(5)

[예제 7-1] list의 활용

5

7.1. list형

▪ 변수는 사용되기 전에 반드시 할당되어야 함

(6)

7장. 구성이 다른 자료 ­ list

7.2. list의 index

(7)

List의 index

7

7.2. list의 index

▪ list의 각 원소들은 list 변수 내에서 index를 통해 개별적으로 다루어 짐

• 주의 : list는 집합과 유사하지만, index를 통해 접근할 수 있다는 점에서 차이가 남

▪ list와 string의 공통점은 index를 가진다는 것

▪ string과 같이 list의 경우에도 index는 element가 배열된 순서를 나타냄

• 항상 ‘0’번째 요소부터 순서가 매겨 짐

▪ list의 index를 활용하여 index에 해당하는 값을 반환 가능

▪ list의 index 구조

• season =[‘spring’, ‘summer’, ‘fall’, winter’]

list_name[index] list에서 index에 해당하는 element값을 반환함

season = [‘spring’, ‘summer’, ‘fall’, ‘winter’]

spring summer fall winter

0 1 2 3

(8)

8

(9)

[예제 7-2] index를 이용하여 요소에 접근하기

9

7.2. list의 index

(10)

[참고]

10

7.2. list의 index

1 2 3 4

-4 -3 -2 -1

0 1 2 3

a

▪ list의 index에 음수 값을 넣을 수도 있음.

• list형인 변수 a=[1, 2, 3, 4]가 주어졌을 때, a[-1]값을 확인해보면 4가 나옴

• index값이 음수로 가더라도 왼쪽으로 한 칸씩 이동
 단, list의 길이를 넘어서면 안 됨

• 아래 예제에서는 4칸을 넘을 수 없음

(11)

Index 응용 : element에 접근하기

11

7.2. list의 index

▪ index도 연산이 가능함 (단, 나눗셈 연산자는 사용이 불가) –연산 결과는 반드시 정수(integer type)가 되어야 함

[예제 7-3] index 응용 : element에 접근하기1 list_name


[int_a θ int_b]

int_a θ int_b의 연산 결과가 index가 됨 list는 index에 해당하는 element값을 반환함

θ는 연산자를 의미함, θ = {+, - , *, %}

(12)

[예제 7-4] index의 연산 응용 : element에 접근하기

12

7.2. list의 index

(13)

[예제 7-4] index의 연산 응용 : element에 접근하기

13

7.2. list의 index

(14)

14

atom 에서는 이와 같이 작성 한 후 Comm+I를 누른다

(15)

▪ String에서 사용했던 방식과 같이 왼쪽의 element가 오른쪽 list에 포함되어 있는지를 판단함

[예제 7-5] list에서의 in과 not in 1

List의 membership : ‘in’ & ‘not in’

15

7.2. list의 index

in list의 element 인가를 결정하는 연산자

not in list의 element가 아닌 element를 결정하는 연산자

(16)

List의 membership : ‘in’ & ‘not in’

16

7.2. list의 index

(17)

17

를 실행하면

(18)

[예제 7-6] list에서의 in과 not in 2

18

7.2. list의 index

(19)

[예제 7-6] list에서의 in과 not in 2

19

7.2. list의 index

(20)

List 길이 : len()

20

7.2. list의 index

▪ Len()함수는 해당 list의 element 개수를 int type으로 반환한다.

[예제 7-7] list의 element개수 파악하기 1

len(list or list_name) list의 길이(element의 개수)를 반환하는 함수

(21)

List 길이 : len()

21

7.2. list의 index

[예제 7-8] list의 element개수 파악하기 2

(22)

[실습 7-1] 특정 단어와 element 개수를 조건으로 하는 예제

22

7.2. list의 index

(23)

[실습 7-1] 특정 단어와 element 개수를 조건으로 하는 예제

23

7.2. list의 index

(24)

[실습 7-1] 특정 단어와 element 개수를 조건으로 하는 예제

24

7.2. list의 index

(25)

[퀴즈 7-1]

25

7.2. list의 index

▪ 다음 프로그램의 결과를 예측하여 넣어 보자.

>>>list1 = ['a', 'b', ['c','d'], 1, [2,3], 'e']

>>>len(list1)

( )

>>>['b'] in list1

( )

>>>['c','d'] in list1

( )

>>>'a' in list1 ( )

(26)

list 연산

26

7.2. list의 index

(27)

list 연산

27

7.2. list의 index

(28)

[퀴즈 7-2]

28

7.2. list의 index

▪ 다음과 같이 작성된 프로그램의 빈칸을 채워 넣어라

>>>list_odd = [1,3,5,7,9]

>>>list_even = [2,4,6,8,10]

>>>list_odd[-3]

( )

>>>list_even[1+3]

( )

>>>( )

[1, 3, 5, 7, 9, 2, 4, 6, 8, 10]

>>>( )

[1, 3, 5, 7, 9, 1, 3, 5, 7, 9]

(29)

list slice (1/2)

29

7.2. list의 index

▪ list도 slice기법을 사용하여 자를 수 있음

• 4가지의 index 조건으로 나누어 설명

list_name[index1 : index2] index1이상, index2미만인 범위의 부분list를 생성하는 연산 index1값은 포함되고, index2값은 포함되지 않음

list_name[:] 모든 범위의 list를 생성하는 연산

(30)

list slice (2/2)

30

7.2. list의 index

list_name[:index2] index2 미만인 범위의 부분list를 생성하는 연산

list_name[index1:] index1 이상 범위의 부분list를 생성하는 연산

(31)

[예제 7-11] list slice

31

7.2. list의 index

(32)

[예제 7-11] list slice

32

7.2. list의 index

(33)

[퀴즈 7-3]

33

7.2. list의 index

▪ 아래의 실행문에 대한 결과가 올바른지 O/X로 표시해보자

>>>list1 = [1,2,3,4,5,6,7,8,9]

>>>list1[:3]

[1, 2, 3] ( )

>>>list1[0:3]

[2, 3] ( )

>>>list1[3:5]

[4, 5] ( )

>>>list1[3:]

[4, 5, 6, 7, 8, 9] ( )

>>>list1[3:999]

[4, 5, 6, 7, 8, 9, 10, ..] ( )

(34)

list의 element 대체

34

7.2. list의 index

▪ string과 달리 list는 할당문을 활용하여 element를 교체할 수 있음

[예제 7-12] list element의 갱신

(35)

list의 element 대체

35

7.2. list의 index

(36)

list의 element 대체

36

7.2. list의 index

▪ slice와 함께 사용해 element를 교체하는 것도 가능함

list_name[index1 : index2]=

[element1, element2, …] list에서 [index1:index2]의 범위에 해당하는 element들을 [element1, element2, …]로 교체함

list_name[index1:]=

[element1, element2, …]

list에서 index1이상의 범위에 해당하는 모든 element들을 [element1, element2, …]로 교체함

list_name[:index2]=

[element1, element2, …]

list에서 index2 미만의 범위에 해당하는 모든 element들을 [element1, element2, …]로 교체함

(37)

[예제 7-13] list element의 갱신

37

7.2. list의 index

(38)

[예제 7-13] list element의 갱신

38

7.2. list의 index

(39)

[실습 7-2] list 연산 및 대체 slice 활용

39

7.2. list의 index

(40)

[퀴즈 7-4]

40

7.2. list의 index

▪ 다음 결과에 알맞도록 빈칸에 알맞은 값을 채워 보자

>>>string = ['a', 'b', 'c', 'd', 'e', 'f']

>>>( ) ['a', 'b', 'c']

>>>( ) ['c', 'd', 'e']

>>>( ) ['b', 'c']

(41)

1. 다음 실행문의 결과를 예상하시오.

2. 다음 프로그램의 결과는 무엇인가?



 —————————

>>>title = ['P','r','o','g','r','a','m','m','i','n','g']

>>>title [:7]

---

[연습문제]

41

7.2. list의 index

list1 = ['n', 'e', 'w', 'l', 'i', 's', 't']

list2 = ['n', 'e', 'w', 's', 't', 'r', 'i', 'n', 'g']

list_new = list1[:3] + list2[6:]

print(list_new)

참조

관련 문서

결국 법체계적인 문제점과 내용상의 문제점을 모두 고려해본다면 다음과 같은 개선방안이 필요하다. 현재 세법상의 특수관계인의 범위를 국세기본법에서 규정하 는대로

의료원 전략위원회의 목적은 의료원 을 전략실행에 맞는 전사적 조직체계로 정렬하는 것 이었으며, 전사적 조직을 구축하는데 반드시 필요한, 모든 구성원이 이해하고

다만, 대학원과목 수강신청학점은 학사과정의 학기당 수강신청

응답 시간 최대값(증설 유니트는 포함되지 않음)은 구성도에서 최상위 유니트에 대한 입력이 ON→OFF된 후, 최하위 유니트의

[r]

- 평행 사변형 법칙 또는삼각형 작도후, 합력의 크기는 코사인법칙을 이용하여,..

 Ax = b인 선형시스템이 단일 해를 가지면, b가 A의 열벡터의 선형 결합으로 표현되고, 열벡터가 생성하는 공간에 b가 포함되고, 첨가 행렬의

• 시간복잡도는 알고리즘이 수행하는 기본적인 연산 횟수를 입력 크기에