점프 투 파이썬으로 정리한 내용입니다
>>> odd=[1,3,5,7,9]
리스트는 위와 같은 형식으로 생성한다.
**리스트명=[요소1,요소2,요소3,...]
>>> a=[]
>>> b=[1,2,3]
>>> c=['Life','is','too','short']
>>> d=[1,2,'Life','is']
>>> e=[1,2,['Life','is']]
리스트 안에는 어떠한 자료형도 포함시킬 수 있다.
**비어있는 리스트는 a=list()로 생성할 수 있다.
리스트의 인덱싱은 문자열의 인덱싱과 유사하다
>>> a=[1,2,3,['a','b','c']]
>>> a[0]
1
>>> a[-1]
['a', 'b', 'c']
>>> a[3]
['a', 'b', 'c']
>>> a[-1][0]
'a'
>>> a=[1,2,3,4,5]
>>> a[0:2]
[1, 2]
문자열에서 사용했던 방법과 완전히 동일하다.
>>> a=[1,2,3,4,5]
>>> b=a[:2]
>>> c=a[2:]
>>> b
[1, 2]
>>> c
[3, 4, 5]
중첩된 리스트에서도 비슷하게 슬라이싱이 가능하다.
리스트 역시 + 기호를 이용해서 더할 수 있고, * 기호를 이용해서 반복할 수 있다.
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
리스트 사이에서 +기호는 2개의 리스트를 합치는 기능을 한다.
>>> a=[1,2,3]
>>> a*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
만약 숫자와 문자열을 더하고 싶다면 어떻게 해야할까?
그럴려면 숫자를 문자열로 형변환을 시켜주어야 한다.
이 경우엔 파이썬의 내장함수인 str()을 사용해준다.
>>> str(a[2])+"hi"
'3hi'
>>> 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:2] = ['a','b','c']
a[1] = ['a','b','c']
위 두개의 방법이 다른 결과를 낳는다는 것이다.
두번째 방법은 a의 두번째 요소를 ['a','b','c']로 바꾼다는 말이고,
처음 방법은 a[1]에서 a[2] 사이의 리스트를 ['a','b','c']로 바꾼다는 말이다.
>>> a=[1,2,3]
>>> a[1]=['a','b','c']
>>> a
[1, ['a', 'b', 'c'], 3]
>>> a=[1, 'a', 'b', 'c', 4]
>>> a[1:3]=[]
>>> a
[1, 'c', 4]
>>> a
[1, 'c', 4]
>>> del a[1]
>>> a
[1, 4]
>>> del a[0:1]
>>> a
[4]
del a[x]는 x번째 요소값을 삭제한다.
del a[x:y]는 x번째부터 y번째 요소 사이의 값을 삭제한다.
del 함수는 파이썬의 내장함수이고, 어떤 자료형에도 사용할 수 있다.
문자열과 마찬가지로 리스트 변수명 뒤에 '.'를 붙여서 여러가지 리스트 관련 함수들을 이용할 수 있다.
append(x)는 리스트의 맨 마지막에 x를 추가시키는 함수이다.
>>> a=[1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]
>>> a.append([5,6])
>>> a
[1, 2, 3, 4, [5, 6]]
리스트 안에는 어떤 자료형도 추가할 수 있다.
sort 함수는 리스트의 요소를 순서대로 정렬해준다.
>>> a=[1,4,5,3,2]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
문자 역시 알파벳 순서로 정렬할 수 있다.
>>> a=['a','c','b']
>>> a.sort()
>>> a
['a', 'b', 'c']
reverse함순느 리스트를 역순으로 뒤집어준다.
이때 리스트 요소들을 순서대로 정렬한 다음 다시 역순으로 정렬하는 것이 아니라, 현재의 리스트를 그대로 거꾸로 뒤집을 뿐이다.
>>> a=['a','c','b']
>>> a.reverse()
>>> a
['b', 'c', 'a']
index(x) 함수는 리스트에 x라는 값이 있으면 x의 위치값을 리턴한다.
리스트 안에 x라는 값이 없으면 값 오류(ValueError)가 발생한다.
>>> a=[1,2,3]
>>> a.index(3)
2
>>> a.index(1)
0
insert(a,b)는 리스트의 a번째 위치에 b를 삽입하는 함수이다.
>>> a=[1,2,3]
>>> a.insert(0,4)
>>> a
[4, 1, 2, 3]
>>> a.insert(3,5)
>>> a
[4, 1, 2, 5, 3]
remove(x)는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수이다.
>>> a=[1,2,3,1,2,3]
>>> a.remove(3)
>>> a
[1, 2, 1, 2, 3]
a가 3이라는 값을 2개 가지고 있을 경우에 첫 번째 3만 제거되는 것을 알 수 있다.
한번 더 실행되면 나머지 3도 제거할 수 있다.
pop()함수는 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제하는 함수이다.
>>> a=[1,2,3]
>>> a.pop()
3
>>> a
[1, 2]
pop(x)는 리스트의 x번째 요소를 되돌려주고 그 요소는 삭제한다.
>>> a=[1,2,3]
>>> a.pop(1)
2
>>> a
[1, 3]
count(x)는 리스트 내에 x가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수이다.
>>> a=[1,2,3,1]
>>> a.count(1)
2
1이라는 값이 리스트 a에 2개 있으므로 2를 돌려준다.
extend(x)에서 x에는 리스트만 올 수 있으며 원래의 a 리스트에 x 리스트를 더하게 된다.
>>> a=[1,2,3]
>>> a.extend([4,5])
>>> a
[1, 2, 3, 4, 5]
>>> b=[6,7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]
a.extend([4,5])는 a+=[4,5]와 동일하다