공부 참조 싸이트 : http://codejob.co.kr/docs/view/2/

 

 

[3] 리스트 (List)

여러 가지 리스트의 생김새를 살펴보면 다음과 같다.

>>> a = []
>>> b = [1, 2, 3]
>>> c = ['Life', 'is', 'too', 'short']
>>> d = [1, 2, 'Life', 'is']
>>> e = [1, 2, ['Life', 'is']]

a 처럼 리스트는 아무 것도 포함하지 않는 빈 리스트([])일 수도 있고 b처럼 숫자를 그 요소 값으로 가질 수도 있고, c처럼 문자열을 요소값으로 가질 수 있고 d처럼 숫자와 문자열을 함께 요소값으로 가질 수 있으며 또한 e처럼 리스트 자체를 그 요소 값으로 가질 수 도 있다. 즉, 리스트 내에는 어떠한 자료형도 포함시킬 수 있다.

 

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

>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']

 

이차원으로 생각하면 편할듯!!

>>> a[-1][1]
'b'
>>> a[-1][2]
'c'

 

>>> a = [1, 2, ['a', 'b', ['Life', 'is']]]

삼차원으로 생각하면 편할듯!!

>>> a[2][2][0]
'Life'

 

 

리스트의 슬라이싱

>>> a = [1, 2, 3, 4, 5]
>>> a[0:2]
[1, 2]

어제 했던 문자열의 슬라이싱하고 사용방법이 똑같다.

 

 

리스트를 더하고(+) 반복하기(*)

 

>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> a + b
[1, 2, 3, 4, 5, 6]

>>> a = [1, 2, 3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

 

리스트의 수정 변경과 삭제

수정

>>> a = [1, 2, 3]
>>> a[2] = 4
>>> a
[1, 2, 4]

 

>>> a[1:2]
[2]
>>> a[1:2] = ['a', 'b', 'c']
>>> a
[1, 'a', 'b', 'c', 4]

 

삭제

a[1, 'a', 'b', 'c', 4]

>>> a[1:3] = []
>>> a
[1, 'c', 4]

>>> a
[1, 'c', 4]
>>> del a[1]
>>> a
[1, 4]

 

>>> a[0] = []

>>> a[0]

[]

이렇게 배열 하나만에 [] 넣어주면 빈공간이 들어가게된다.

삭제가 안되고 삭제 할려고하면

>>>  a[0:1] = []

이 문법을 써야한다. 이게 헷갈리니 그냥

>>> del a[0]

이 문법을 사용하게 속 편할거 같다.

 

 

[참고] 초보가 범하기 쉬운 리스트 연산 오류
우선 다음과 같은 예를 먼저 만들어보자.
>>> a = [1, 2, 3]
>>> a[2] + "hi"
Traceback (innermost last):
File "", line 1, in ?
a[2] + "hi"
TypeError: number coercion failed
TypeError 에러가 발생했다. 에러의 원인은 무엇일까?

a[2]는 3이라는 정수인데 "hi"는 문자열이다.
두 값(정수와 문자열)을 더한다는 것은 상식적으로 맞지 않는 방법이다. 
그래서 Type 에러가 발생하는 것이다. 숫자와 문자열을 더할 수는 없다.

만약 숫자와 문자열을 더해서 '3hi'처럼 만들고 싶다면 숫자 3을 문자 '3'으로 바꾸어 주어야 한다.

그 방법에는 두 가지가 있다.

>>> str(a[2]) + "hi"
>>> `a[2]` + "hi"
첫 번째 방법은 str 함수로 정수를 문자열로 바꾸어 주는 방법이고
두 번째 방법은 (`) Back Quote 문자를 이용한 것인데, 위에서 Back Quote문자(`)는
str 함수를 사용한 것과 완전히 동일한 결과값을 돌려준다.

 

리스트 함수 설명

함수 설명
a.append(x) 리스트 a의 마지막에 x추가
a.sort() 리스트 a를 정렬
a.reverse() 리스트 a의 순서를 거꾸로 만든다.
a.index(x) 리스트 a에서 x를 찾아서 그 위치 반환
a.insert(i, x) 리스트 a에서 i 위치에 x 삽입
a.remove(x) 리스트 a에서 처음 나오는 x 삭제
a.pop() 리스트 a의 맨 마지막 요소 반환하고 마지막 요소 삭제
a.count(x) 리스트 a 안에 x가 몇 개 있는지를 반환
a.extend(x) 리스트 a에 리스트 x를 더함(확장)

 

 

a.sort()

 

a = [9, 2, [10, 9,2]]

a.sort()

이러면 에러남 다중 배열로 들어가면 에러 나는듯

하지만

a[2].sort()

는 성공!!!!!!

>>> a
[9, 2, [2, 9, 10]]

 

앞부분 소트 시키는 법은 연구 해봐야겠다...

a[0:2].sort()

이렇게 하면 될줄 알았는데 안되네~

 

[4] 터플 (tuple)

터플 또는 튜플이라고 부른다.


터플이란 리스트와 몇 가지 점을 제외하곤 모든 것이 동일하다. 그 다른 점은 다음과 같다.

  • 리스트는 '[' 과 ']' 으로 둘러싸지만 터플은 '('과 ')'으로 둘러싼다.
  • 리스트는 그 값을 생성, 삭제, 수정이 가능하지만 터플은 그 값을 변화시킬 수 없다.

나머지는 리스트사용하던 방식대로 사용하면 된다.

 

 

 

 

'Programing > Python' 카테고리의 다른 글

파이썬 4일차  (0) 2012.05.11
파이썬 3일차  (0) 2012.05.09
파이썬 2일차 - 2  (0) 2012.05.08
파이썬을 쉽게 사용하는 PyScripter 설치하기  (0) 2012.05.07
파이썬(Python) 설치 방법 3.2.2버전  (0) 2012.05.07
Posted by 부우산사나이
: