티스토리 뷰

10.1 리스트(List)

- 리스트(list)는 어떠한 크기의 데이터 모음(data collection)을 저장 할 수 있다.    

- 프로그램 보통 수 많은 값들을 다루어야 할 때가 많다.

- 예를 들어, 100가지의 숫자들을 평균내 평균보다 높은 숫자들의 갯수를 구하는 프로그램을 작성한다고 가정하자.

- 이를 수행하기 위해 우리는 100개의 변수를 사용하고 반복문으로 동일한 코드을 반복해야할 지도 모른다.

- 이 방법 매우 비효율적이므로 좀 더 조직화된 접근법이 필요하다.

- 그래서 파이썬은 요소(element)들을 연속적인 모음(sequential collection)에 저장할 수 있는 리스트(list)라고 부르는 타입(type)을 제공한다.

 

*간단한 리스트 예시(DataAnalysis.py)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
NUMBER_OF_ELEMENTS = 5 #상수, 5
numbers = [] #빈 리스트 선언
sum = 0
 
for i in range(NUMBER_OF_ELEMENTS):
        value = eval(input("Enter a new number : "))
        numbers.append(value)
        sum += value
 
average = sum / NUMBER_OF_ELEMENTS
 
count = 0 #평균보다 큰 숫자들의 갯수
for i in range(NUMBER_OF_ELEMENTS):
        if numbers[i] > average:
                count += 1
 
print("Average is ", average)
print("Number of elements above the average is ", count)
cs

<실행 결과>

 

- Line 2, 빈 리스트를 선언한다.

- Line 6, 숫자(numbers)를 반복해 읽어들인다.

- Line 7, 숫자를 할당한다.

- Line 8, sum 변수에 값을 더한다.

- Line 10, 평균(average)을 구한다.

- 그 후 리스트 안에 있는 숫자들을 하나하나 비교해 평균보다 큰 수를 구한다.

 

*많은 프로그래밍 언어들이 연속된 데이터를 저장하는데 '배열(array)'라고 부르는 타입을 사용한다.

'배열'의 크기는 고정된 크기이지만 파이썬에서 제공하는 '리스트'의 크기는 유연하다.

파이썬 리스트의 크기는 요구에 따라 키우거나 줄일 수 있다.

 

10.2 리스트 기초(List Basics)

- 리스트(list)는 list 클래스(list class)로 정의된 시퀀스(sequence)이다.

- 이 클래스는 리스트(list)를 다루기 위한 많은 메소드들을 제공한다.

- 리스트 안에 있는 요소들은 인덱스(index)를 통해 접근 할 수 있다.

 

10.2.1 리스트 만들기(Creating Lists)

- 리스트 클래스는 리스트를 정의한다. 리스트를 만들기 위해서 우리는 리스트의 생성자(constructor)를 이용할 수 있다.

*리스트 생성자 사용형식

list1 = list() # 빈 리스트 생성

list2 = list([2,3,4]) #요소 2, 3, 4를 가진 리스트 생성

list3 = list(["red", "green", "blue"]) # 문자열들을 가진 리스트 생성

list4 = list(range(3,6)) # 요소 3, 4, 5를 가진 리스트 생성

list5 = list("abcd") #문자(character) a, b, c, d를 가지는 리스트 생성

 

- 위 방법 말고도 아래처럼 간단하게 선언 할 수도 있다.

list1 = [] #빈 리스트 생성

list2 = [2, 3, 4] # list([2, 3, 4])

list3 = ["red", "green"] # list(["red", "green"])

 

- 리스트의 요소들은 콤마( , )분리되며 [ ] 기호로 묶는다.

 

- 파이썬은 아래와 같이 다른 타입들끼리 리스트를 선언할 수 있다.

list4 = [2, "three", 4]

 

10.2.2 리스트는 시퀀스 타입이다(List Is a Sequence Type)

- 파이썬에서 Stringlist시퀀스(sequence)타입이다. String문자들의 연속(sequence)이지만, 리스트(list) 모든 타입의 요소들의 연속이다.

- 아래의 표가 시퀀스(sequence)에 쓰이는 연산자들을 요약한 표이다.

- 여기에 소개된 String에 쓰이는 연산자들은 챕터 8에 소개된 적 있다.

list에 쓰이는 시퀀스 연산자 string에 쓰이는 연산자같은 의미를 지닌다.

 

* 시퀀스 s에 쓰이는 공통연산(Common Operations for Sequence s)

 연산(Operations)

 설명

 x in s

 요소 x가 시퀀스 s에 존재하면 True

 x not in s

 요소 x가 시퀀스 s에 존재하지 않으면 True  

 s1 + s2

 시퀀스 s1과 s2를 결합(concatenate)한다. 

 s * n, n * s

 시퀀스 s를 n번 복사해 연결한다. 

 s[i]

 시퀀스 s의 i번 째 요소 

 s[i : j]

 시퀀스 [i] 부터 [j-1]까지 자른다(slice)

 len(s)

 시퀀스 s의 길이 

 min(s)

 시퀀스 s의 가장 작은 요소 

 max(s)

 시퀀스 s의 가장 큰 요소 

 sum(s)

 시퀀스 s의 모든 숫자들의 합 

 for loop

 for문을 이용해 리스트 왼쪽부터 오른쪽까지 요소에 접근한다.

 <, <=, >, >=, =, !=

 두 시퀀스를 비교한다.

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

댓글