티스토리 뷰
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)
- 파이썬에서 String 과 list는 시퀀스(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
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]리스트 기초(3) (0) | 2017.12.30 |
---|---|
[파이썬]리스트 기초(2) (0) | 2017.11.25 |
[파이썬]연산자 오버로딩과 특수메소드, Rational 클래스(유리수) (2) | 2017.08.24 |
[파이썬]회문 검사(Palindromes), 진수 변환(16진수 → 10진수) (0) | 2017.08.21 |
[파이썬]문자열 변환, 공백 문자 제거, 문자열 포매팅 (0) | 2017.08.20 |
- Total
- Today
- Yesterday
- 자바스크립트 그래프
- css 박스
- 파이썬 while
- 자바
- 백준 10451
- 파이썬 for
- 백준 1874
- css 그리드
- 명품 c++ 실습
- 자료구조
- 파이썬 클래스
- 파이썬 터틀
- 파이썬 예제
- 파이썬 리스트
- css
- 백준 11501
- 백준
- 파이썬 단계적 개선
- 자바 에센셜 실습문제
- 자바스크립트 자료구조
- 파이썬
- 파이썬 함수
- 파이썬 if문
- 파이썬 연산자
- 웹
- 파이썬 진수 변환
- 파이썬 객체
- 파이썬 선택문
- 파이썬 문자열
- 버츄어박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |