IT/파이썬

[코딩도장] day10. 리스트 요소값 조작하기 - index(), count(), reverse(), sort(), sorted, clear()

_하늘여우_ 2020. 8. 22. 22:17

■ 들어가기

- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그


▶ Unit22. 리스트와 튜플 응용하기

     - 22.1 리스트 조작하기

     - 22.2 리스트의 할당과 복사 알아보기

     - 22.3 반복문으로 리스트의 요소를 모두 출력하기

     - 22.4 리스트의 가장 작은 수, 가장 큰 수, 합계 구하기

     - 22.5 리스트 표현식 사용하기

     - 22.6 리스트에 map 사용하기

     - 22.7 튜플 응용하기

 

>> 22.1 리스트 조작하기 <<

1. 리스트에서 특정 값의 인덱스 구하기

- 사용법: index(값)

- 같은 값이 려거 개인 경우, 처음 찾은 인덱스를 return (가장 작은 인덱스)

- 존재하지 않는 값을 찾을 경우 Error 발생

>>> a = [10, 20, 30, 15, 20, 40]
>>> len(a)
6
>>> a[len(a)-1]
40
>>> a.index(20)
1
>>> a.index(100)
Traceback (most recent call last):
  File "<pyshell#16>", line 1, in <module>
    a.index(100)
ValueError: 100 is not in list

2. 특정 값의 개수 구하기

- 리스트에서 특정 값의 개수를 구함

- 사용법: count(값)

- 존재하지 않는 값을 찾을 경우 0 return

>>> a = [10, 20, 30, 15, 20, 40]
>>> len(a)
6
>>> a.count(20)
2
>>> a.count(100)
0

3. 리스트의 순서 뒤집기

- 리스트의 요소의 순서를 반대로 뒤집기 위한 메서드

- 사용법: reverse()

>>> a = [10, 20, 30, 15, 20, 40]
>>> len(a)
6
>>> a.reverse()
>>> a
[40, 20, 15, 30, 20, 10]
>>> a.reverse()
>>> a
[10, 20, 30, 15, 20, 40]

4. 리스트의 요소를 정렬하기

- 리스트의 요소를 작은 순서대로 정렬(오름차순)하기 위한 메서드

- 사용법: 

  • sort() 또는 sort(reverse=False) : 리스트의 값을 작은 순서대로 정렬 (오름차순)
  • sort(reverse=True) : 리스트의 값을 큰 순서대로 정렬 (내림차순)
>>> a = [10, 20, 30, 15, 20, 40]
>>> a.sort()
>>> a
[10, 15, 20, 20, 30, 40]
>>> a.sort(reverse=True)
>>> a
[40, 30, 20, 20, 15, 10]

- sort메서드와 sorted함수

  • sort : 메서드를 사용한 리스트를 변경
  • sorted : 정렬된 새 리스트를 생성
>>> a = [10, 20, 30, 15, 20, 40]
>>> a.sort() # a의 내용을 변경하여 정렬
>>> a
[10, 15, 20, 20, 30, 40]
>>> b = [10, 20, 30, 15, 20, 40]
>>> sorted(b) # 정렬된 새 리스트를 생성
[10, 15, 20, 20, 30, 40]
>>> c = sorted(b)
>>> c
[10, 15, 20, 20, 30, 40]

5. 리스트의 모든 요소 삭제

- 사용법: clear(), del 리스트[:]

>>> a = [10, 20, 30]
>>> a.clear()
>>> a
[]
>>> a = [10, 20, 30]
>>> del a[:]
>>> a
[]

6. 리스트를 슬라이스로 조작

>>> a = [10, 20, 30]
>>> a[len(a):] = [500]     # a.append(500)과 동일 
>>> a
[10, 20, 30, 500]
>>> a = [10, 20, 30]
>>> a[len(a):] = [500, 600]     # a.extend([500, 600]) 동일 
>>> a
[10, 20, 30, 500, 600]

7. 리스트가 비어있는지 확인

  1) len 함수로 길이 구하기

>>> a = [10, 20, 30]
>>> len(a)
3
>>> a.clear()
>>> len(a)
0

  2) if 조건문으로 판별하기

>>> a = [10, 20, 30]
>>> if a : # 리스트에 내용이 있으면 True
print('not empty')
else : # 리스트에 내용이 없는 경우
print('empty')


not empty
>>> a.clear()
>>> if a:
print('not empty')
else :
print('empty')


empty

- 리스트에 요소가 있을 때만 마지막 요소 확인하기

>>> a = [10, 20, 30]
>>> a[-1]     # 리스트 마지막 요소 접근 시 인덱스 -1 지정
30
>>> a.clear()
>>> a[-1]
Traceback (most recent call last):
  File "<pyshell#148>", line 1, in <module>
    a[-1]
IndexError: list index out of range
>>> if a :
print(a[-1])
else :
print('list is empty')


list is empty