이번에는 파이썬 리스트 연산에 대해 알아보려 합니다.
벌써 파이썬 공부하기 8번째 포스팅이네요
지난번에는 파이썬 리스트 자료형에 대해서 공부해봤습니다.
파이썬 리스트 연산하기
문자열과 마찬가지로 파이썬 리스트 역시 + 기호를 사용해서 더한다던가 * 기호를 사용해서 원하는 문자열을 원하는 갯수만큼 반복해서 사용할수 있습니다.
리스트 더하기(+)
>>> a = [2, 3, 4]
>>> b = [5, 6, 7]
>>> a + b
[2, 3, 4, 5, 6, 7]
문자열에서와 마찬가지로 + 기호를 사용해 두 개의 리스트를 합쳤습니다.
리스트 반복(*)
>>> a = [2, 3, 4]
>>> a * 4
[2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4]
역시 문자열과 마찬가지로 리스트 a * 4 를 해주면 그만큼 반복해서 출력을 해줍니다.
리스트 길이(len)
>>> len(a)
3
len 함수는 문자열, 리스트, 튜플, 딕셔너리 에서도 길이를 구하기 위해 자주 사용됩니다.
리스트 연산 오류
>>> a[1] + "hello"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
리스트 a[1] 의 요소값은 3 입니다. 숫자와 “hello”를 합치라는 명령이기때문에 TypeError 가 발생합니다.
숫자와 문자를 합치기 위해서는 “hello”를 숫자로 바꿀수는 없기에 숫자 3을 문자형으로 바꿔주면 됩니다.
>>> str(a[1]) + "hello"
'3hello'
str 함수는 정수나 실수 같은 숫자형 자료를 문자열로 바꿔주는 파이썬 내장 함수 입니다
리스트의 수정과 삭제
리스트의 요소값은 수정 또는 삭제가 가능합니다.
리스트 요소값 수정
>>> a = [2, 3, 4]
>>> a[1] = 5
>>> a
[2, 5, 4]
리스트 a 의 두번째 요소값 3 이 5로 변경되었습니다.
리스트 요소값 삭제(del)
>>> del a[2]
>>> a
[2, 5]
del 함수로 리스트의 요소값을 삭제할 수 있습니다. 위 예는 리스트 a 의 세번째 요소인 4 를 삭제했습니다.
del 객체 (객체 : 파이썬에서 사용되는 모든 자료형)
슬라이싱 기법으로 리스트 요소 삭제
>>> a = [2, 3, 4, 5, 6]
>>> del a[2:]
>>> a
[2, 3]
리스트 a 의 요소중 세번째인 4부터 모두 한꺼번에 삭제를 할수 있습니다.
파이썬 리스트 관련 함수
문자열에서와 마찬가지로 리스트 변수 이름 뒤에 ‘.’ 을 붙여서 리스트 관련 함수를 사용할수 있습니다.
리스트 요소 추가(append)
>>> a = [2, 3, 4]
>>> a.append(5)
>>> a
[2, 3, 4, 5]
append(x) 라고 표현하면 리스트의 마지막에 x 라는 요소를 추가하라는 명령입니다.
리스트에 리스트 요소 추가
>>> a.append([6,7])
>>> a
[2, 3, 4, 5, [6, 7]]
앞에 추가한 숫자 5 뒤로 리스트 [6, 7]을 요소로 추가했습니다.
리스트 정렬(sort)
>>> a = [1, 4, 6, 3]
>>> a.sort()
>>> a
[1, 3, 4, 6]
sort 함수는 리스트의 요소를 순서대로 정렬해 줍니다.
>>> a = ['b', 'e', 'd']
>>> a.sort()
>>> a
['b', 'd', 'e']
문자열의 경우 알파벳 순서대로 정렬을 해줍니다.
리스트 뒤집기(reverse)
>>> a.reverse()
>>> a
['e', 'd', 'b']
위에 정렬해서 나온 결과값 [‘b’, ‘d’, ‘e’] 을 뒤집어서 [‘e’, ‘d’, ‘b’] 가 출력되었습니다.
인덱스 반환(index)
>>> a.index('e')
0
리스트 a 의 최종 값 [‘e’, ‘d’, ‘b’] 에서 ‘e’ 는 첫번째 주소인 0 에 위치하고 있습니다.
>>> a[0]
'e'
a[0]을 입력했을때 나오는 출력값으로 확인이 가능합니다.
>>> a.index('a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list
리스트 a 에 존재하지 않는 ‘a’ 값을 index로 찾아보면 값이 없다고 오류가 발생하게 됩니다.
리스트에 요소 삽입(insert)
>>> a.insert(1, 't')
>>> a
['e', 't', 'd', 'b']
>>> a.insert(3, 5)
>>> a
['e', 't', 'd', 5, 'b']
첫번째는 리스트 최종값 [‘e’, ‘d’, ‘b’]의 1번째 주소인 ‘d’ 자리에 ‘t’ 요소를 삽입했습니다.
두번째는 ‘t’를 삽입한 최종값 [‘e’, ‘t’, ‘d’, ‘b’]의 3번째 주소인 ‘b’자리에 숫자 5를 삽입했습니다.
리스트 요소 제거(remove)
>>> a.remove(5)
>>> a
['e', 't', 'd', 'b']
remove 는 리스트 요소에서 첫번째로 나오는 요소를 삭제하는 함수입니다.
리스트 요소인 5를 제거했습니다. 두개이상의 요소가 있더라도 첫번째 요소만 삭제가 됩니다.
리스트 요소 꺼내기(pop)
>>> a.pop()
'b'
>>> a
['e', 't', 'd']
>>> a.pop(2)
'd'
>>> a
['e', 't']
pop 함수는 리스트 요소중 마지막 요소를 출력해주고 그 요소를 삭제합니다. 즉 꺼낸다고 볼수 있죠.
최종 리스트였던 [‘e’, ‘t’, ‘d’, ‘b’] 에서 ‘b’ 를 출력하고 삭제해서 [‘e’, ‘t’, ‘d’] 만 남습니다.
pop()가 아니라 pop(2) 라고 입력하면 [‘e’, ‘t’, ‘d’]에서 2번째 요소인 ‘d’를 삭제합니다.
리스트 요소 y의 개수 세기(count)
>>> a = [2 ,4, 5, 4, 2, 1]
>>> a.count(2)
2
리스트 a 에서 2 의 갯수를 카운트 합니다.
리스트 확장(extend)
>>> a.extend([5, 6])
>>> a
[2, 4, 5, 4, 2, 1, 5, 6]
>>> b = [9, 0]
>>> a.extend(b)
>>> a
[2, 4, 5, 4, 2, 1, 5, 6, 9, 0]
extend 함수에서는 확장 개념이기때문에 리스트형 자료만 올수 있습니다.
리스트 a 의 최종값 [2 ,4, 5, 4, 2, 1] 에 리스트 [5, 6]을 더해서 [2, 4, 5, 4, 2, 1, 5, 6] 의 결과가 나오고
b 의 리스트에 [9, 0] 을 확장해서 [2, 4, 5, 4, 2, 1, 5, 6, 9, 0]의 최종값을 가지고 옵니다.
이 포스팅은 <위키독스> 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
