1. map 함수
2. sort 함수
3. append 함수
4. del, pop 함수
5. index 함수
6. remove 함수
7. set(집합) 자료형
8. count 함수
9. reversed 함수
여름 방학 동안 꽤나 의미 있었던 공부였던 파이썬에 대해서 알게 된 내용을 며칠에 걸쳐 회고해 볼 예정이다.
많은 내용들 중 list의 활용은 여러가지로 중요하다고 많이 느꼈던 부분이다.
#1 한 줄에 여러 개의 입력이 주어졌을 때 값들을 list로 만들기
nums = list(map(int, input().split()))
C언어만 하다가 파이썬을 처음 접하고 한 줄에 여러 개의 입력이 주어졌을 때 어떻게 해야할 지 몰라서 굉장히 난감했다.
split()을 이용해 공백을 기준으로 input()을 나누고
map 함수를 이용해서 방금 나누어 받은 입력들을 int로 전환 후
list로 만들어준다.
#2 sort 함수를 통해 list를 정렬하기
nums = [3, 2, 5, 4, 1]
nums.sort()
print(nums)
[1, 2, 3, 4, 5]
sort 함수를 이용하면 이렇게 숫자가 오름차순으로 나열되는데
이는 최대 또는 최솟값을 구하는 문제나 n번째로 큰 / 작은 수를 구하거나 등 굉장히 많은 곳에 쓰였다.
#3 append 함수를 통해 list에 값을 추가하기
sums = []
for i in range(0, 3)
sums.append(1 + 2)
print(sums)
[3, 3, 3]
3번에 걸쳐 빈 list인 sums에 1 + 2라는 값을 추가하는 코드이다.
빈 리스트를 생성하고 append를 사용해 리스트에 원하는 만큼 원하는 값을 추가한 뒤
sort 함수를 사용하여 그 값 중 최대 최소를 구하는 등 다양한 응용을 할 수 있다.
#4 del 함수와 pop 함수를 통해 list의 요소 제거하기 (인덱스 값으로 요소 삭제하기)
- del 함수
인덱스에 해당하는 값을 단순히 제거하는 기능을 수행한다.
nums = [1, 2, 3, 4, 5]
del nums[2]
print(nums)
[1, 2, 4, 5]
del nums[x] 는 nums의 x번째 요솟값을 제거한다.
- pop 함수
인덱스에 해당하는 값을 리턴하고 그 요소는 제거한다.
nums = [1, 2, 3, 4, 5]
print(nums.pop())
print(nums)
5
[1, 2, 3, 4]
nums.pop() 위 코드처럼 괄호 안에 인덱스를 넣지 않으면 맨 마지막 요소를 리턴하고 그 요소를 제거한다.
문제를 해결할 때 pop 함수를 del 함수보다 많이 사용했던 것 같다.
#5 index 함수로 요솟값의 위칫값 찾기
del 함수와 pop 함수를 사용할 때에는 인덱스가 무조건 함께 사용되는데,
그런 이유로 응용할 때에는 index 함수와 같이 쓰는 경우가 많다
nums = [1, 2, 3, 4, 5]
print(nums.index(3))
nums 리스트에서 3의 위칫값은 2이므로 2가 출력된다.
#6 remove 함수로 요소 제거하기 (요솟값으로 요소 제거하기)
앞에서 본 del 과 pop 은 요소의 제거에 요소의 인덱스값이 필요했지만,
remove 함수를 사용하면 요솟값으로 리스트의 요소를 제거할 수 있다.
nums = [1, 2, 3, 4, 5]
nums.remove(2)
print(nums)
[1, 3, 4, 5]
#7 집합 자료형 (set)을 통해 리스트 내 중복 값 제거하기
리스트 내 중복된 값을 제거하고 싶을 때, 이 방법을 사용하지 않으면 반복문의 굴레에 갇히게 된다.
링크를 통해 들어가면 집합 자료형에 대해 자세하게 설명되어 있는데,
그 중 집합 자료형의 특성 '중복을 허용하지 않는다' 때문에
list의 중복 제거에 집합 자료형이 사용될 수 있다.
nums = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]
nums = list(set(nums))
print(nums)
[1, 2, 3, 4, 5]
또한 집합 자료형으로 변환했다가 다시 list로 변환하게 되면 자동으로 순서대로 오름차순 배열된다.
#8 count 함수를 통해 리스트 내 요솟값 x의 개수 세기
nums = [1, 2, 2, 3, 4, 5, 5, 5]
print(nums.count(2))
리스트 내 2는 2개이므로 2가 출력된다.
#9 reversed 함수를 통해 리스트 뒤집기
교재에는 리스트.reverse() 함수를 사용하라고 하는데 (리스트 타입 제공 함수)
이 함수를 사용하면 Nonetype를 리턴한다. 따라서 내장 함수인 reversed(리스트)를 사용해야 한다.
다만 이 함수는 reversed 객체를 리턴하므로 결과를 다시 list화 시켜주어야 한다.
nums = [1, 2, 3, 4, 5]
print(list(reversed(nums)))
[5, 4, 3, 2, 1]
'Python' 카테고리의 다른 글
[Python] collections.deque 모듈과 요세푸스 문제 (0) | 2024.02.21 |
---|---|
[Python] 문자열 함수와 반올림에 대해서 (0) | 2023.10.09 |
[Python] list.sort(), sorted() - key=lambda를 사용한 정렬 (0) | 2023.09.01 |
[Python] 백준 10989 메모리 초과와 시간 초과 (0) | 2023.08.29 |