Python/파이썬 입문

[파이썬 입문] 3. 제어문과 컬렉션 – 6) 리스트 기능2(연산 sort reverse copy index)

언휴 2024. 5. 2. 14:45

 

[파이썬 입문] 리스트 기능 (연산 sort reverse copy index)

연산

파이썬의 리스트는 +와 * 연산을 제공합니다.

+ 연산 결과는 두 개의 리스트의 요소를 병합한 리스트입니다.

[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