연산
파이썬의 리스트는 +와 * 연산을 제공합니다.
+ 연산 결과는 두 개의 리스트의 요소를 병합한 리스트입니다.
[In]
ls1 = [1,2,3]
ls2 = [4,5,6]
ls3 = ls1 + ls2
print(ls3)
[Out]
[1, 2, 3, 4, 5, 6]
*수학의 행렬끼리의 더하기 연산은 numpy 모듈의 array에서 제공합니다. *
리스트와 리스트의 곱하기 연산은 제공하지 않습니다.
[In]
ls4 = ls1 * ls2
print(ls4)
[Out]
TypeError Traceback (most recent call last)
<ipython-input-4-681e77c3302c> in <module>()
----> 1 ls4 = ls1 * ls2
2 print(ls4)
TypeError: can't multiply sequence by non-int of type 'list'
리스트와 정수를 피연산자로 오는 곱하기 연산은 제공합니다.
연산 결과는 리스트에 있는 요소를 정수 배 반복 배치합니다.
[In]
ls5 = ls1*3
print(ls5)
[Out]
[1, 2, 3, 1, 2, 3, 1, 2, 3]
리스트와 리스트의 뺄셈 연산은 제공하지 않아요.
[In]
ls6 = ls2-ls1
print(ls6)
[Out]
TypeError Traceback (most recent call last)
<ipython-input-6-fd6eef6bf286> in <module>()
----> 1 ls6 = ls2-ls1
2 print(ls6)
TypeError: unsupported operand type(s) for -: 'list' and 'list'
*수학의 행렬 연산은 numpy 모듈의 array에서 제공합니다. *
변환
리스트에는 요소를 크기 순으로 정렬하는 sort 메서드와 역순으로 배치하는 reverse 메서드를 제공합니다.
list.sort(key=None,reverse=False)
sort 메서드 확인에 앞서 사용자로부터 5개의 정수를 입력받는 코드를 먼저 작성할게요.
[In]
list1 = list()
for i in range(5):
value = int(input("{i+1}번째 >>"))
list1.append(value)
print(list1)
[Out]
{i+1}번째 >>6
{i+1}번째 >>3
{i+1}번째 >>9
{i+1}번째 >>7
{i+1}번째 >>1
[6, 3, 9, 7, 1]
list의 sort 메서드를 호출하면 크기 순으로 정렬합니다. 기본은 오름차순으로 작은 값부터 배치합니다.
[In]
list1.sort()
print(list1)
[Out]
[1, 3, 6, 7, 9]
내림차순으로 정렬하려면 sort 메서드의 reverse인자를 True로 지정하세요.
[In]
list1.sort(reverse=True)
print(list1)
[Out]
[9, 7, 6, 3, 1]
리스트에는 reverse 메서드를 제공합니다.
reverse 메서드는 역순으로 배치합니다.
[In]
ls=[2,5,3,7,8,1]
ls.reverse()
print(ls)
[Out]
[1, 8, 7, 3, 5, 2]
복사
리스트를 복사할 때는 copy 메서드를 사용하세요.
list.copy()
[In]
ls2 = ls.copy()
print(ls2)
[Out]
[1, 8, 7, 3, 5, 2]
값 위치 확인
리스트에 보관한 요소의 위치를 확인할 때 index 메서드를 사용할 수 있어요.
[In]
ls = [1,5,2,9]
i = ls.index(9)
print(i)
[Out]
3
주의할 점은 보관하지 않은 값을 입력 인자로 전달하면 예외가 발생합니다.
[In]
i = ls.index(11)
print(i)
[Out]
ValueError Traceback (most recent call last)
<ipython-input-19-54fa97013a80> in <module>()
----> 1 i = ls.index(11)
2 print(i)
ValueError: 11 is not in list