파이썬 데이터 조작 기능 간단 정리

MOOZZANG·2021년 4월 11일
0
post-thumbnail

이번 시간에는 데이터에 대한 조작 (min/max 구하기, 데이터의 size, 데이터 변환)을 할 때 주로 사용되는 Python 함수를 알아보겠습니다.

type

print(type([7, 5, 2, 3, 6])) # => <class 'list'>
print(type(5))               # => <class 'int'>
print(type(3.14))            # => <class 'float'>
print(type(True))            # => <class 'bool'>
print(type("True"))          # => <class 'str'>

type 함수를 통해 파라미터의 데이터 타입이 리턴됩니다. 시간 복잡도 O(1)

max, min

print(max(2, 5))             # => 5
print(max(2, 7, 5))          # => 7
print(min(2, 5))             # => 2
print(min(2, 7, 5, 11, 6))   # => 2

max, min 함수의 시간 복잡도는 O(n) 입니다. (모든 엘리먼트의 요소를 전부 비교하기 때문)

str

my_str = str(257138)
print(my_str)                # => 257138
print(type(my_str))          # => <class 'str'>

str 함수를 통해 숫자를 문자열로 나타낼 수 있습니다.

append, insert, del, index, reverse

my_list = [7, 5, 2, 3, 6]

my_list.append(9)            # 끝에 9 추가
print(my_list)               # => [7, 5, 2, 3, 6, 9]

my_list.insert(2, 11)        # 2번 인덱스에 11 추가
print(my_list)               # => [7, 5, 11, 2, 3, 6, 9]

del my_list[2]               # 2번 인덱스 값 삭제
print(my_list)               # => [7, 5, 2, 3, 6, 9]

my_index = my_list.index(9)  # 리스트에서 9의 인덱스
print(my_index)              # => 5

my_list.reverse()            # 리스트 뒤집기
print(my_list)               # => [9, 6, 3, 2, 5, 7]

append 함수는 리스트의 맨 끝에 새로운 값이 추가됩니다. 즉 맨 끝에 한번만 데이터를 조작하면 되므로 O(1)
insert, del, index, reverse는 모두 O(n) 입니다.

sort, sorted

my_list = [7, 5, 2, 3, 6]

print(sorted(my_list))       # => [2, 3, 5, 6, 7]
print(my_list)               # => [7, 5, 2, 3, 6]

my_list.sort()
print(my_list)               # => [2, 3, 5, 6, 7]

sort 메소드와 sorted 함수는 리스트를 정렬시킵니다. sorted 함수를 사용하면 정렬된 New List가 return되고, sort 메소드는 그 리스트 자체를 정렬시켜 줍니다.
두 메소드의 시간 복잡도는 모두 O(n * log n)입니다.

slicing

my_list = [7, 5, 2, 3, 6]

print(my_list[1:4])          # => [5, 2, 3]
print(my_list[:4])           # => [7, 5, 2, 3]
print(my_list[1:])           # => [5, 2, 3, 6]
print(my_list[:])            # => [7, 5, 2, 3, 6]
print(my_list[::2])          # => [7, 2, 6]

리스트 슬라이싱을 통해 리스트의 일부를 받아 올 수 있습니다. 리스트 슬라이싱의 시간 복잡도는 범위 길이에 비례합니다
my_list[a:b]를 하면 시간 복잡도는 O(b - a) 입니다.

len

my_list = [7, 5, 2, 3, 6]
my_dict = {'a': 2, 'b': 3, 'c': 5, 'd': 7}
my_string = 'hello world'

print(len(my_list))          # => 5
print(len(my_dict))          # => 4
print(len(my_string))        # => 11

len 함수를 통해 리스트, dictionary, String의 길이가 리턴됩니다. 시간 복잡도 O(1)

profile
느리지만 꾸준히 성장하는 개발자

0개의 댓글