Python

Python_05_데이터_구조

5_ssssseung 2021. 4. 7. 20:27

1. 문자열

변경할 수 없고(immutable), 순서가 있고(ordered), 순회 가능한(iterable)

매서드출력
.find(x)x의 위치를 반환, 없으면 -1
.index(x)x의 위치를 반환, 없으면 오류
.replace(old, new[, count])old를 new로 변경( 해당하는 갯수만큼)
.strip([chars])특정한 문자들을 지정하면, 양쪽을 제거하거나 왼쪽을 제거하거나(lstrip), 오른쪽을 제거합니다(rstrip).지정하지 않으면 공백을 제거합니다.
.split()문자열을 특정한 단위로 나누어 리스트로 반환합니다. 디폴트는 공백
‘separator’.join(iterable)iterable 요소들을 separator를 구분자로 합쳐 문자열로 반환합니다.
.capitalize()맨 앞만 대문자로
.title()띄어쓰기 기준 단어의 첫글자만 대문자로
.upper()모두 대문자로
.lower()모두 소문자로
.swapcase()대소문자 바꿔
  • .isalpha(), .isdecimal(), .isdigit(), .isnumeric(), .isspace(), .isupper(), .istitle(), .islower()

 

2. 리스트

변경 가능하고(mutable), 순서가 있고(ordered), 순회 가능한(iterable)

매서드출력
.append(‘twosome’)리스트에 원소 추가
.extend([‘빽다방’, ‘공차’])리스트에 여러개 원소 추가
.insert(1,‘hi’)1 위치에 해당 원소 추가, 맨뒤에 넣을거면 len, len 넘으면 자동으로 맨뒤로 감
.remove(1)1 제거, 삭제할 값이 없으면 오류
.pop(1)1위치의 값 제거, 디폴트는 맨 마지막 원소 제거, 제거된 원소를 리턴으로 가짐
.clear()모든 항목을 제거
.index(2)해당 값의 인덱스를 반환
.count(1)해당 값의 갯수를 반환
.sort()오름차순 정렬. 내림차순은 .sort(reverse = Ture)
.reverse()순서를 반대로(정렬아님)

 

2.1 List Comprehension

리스트를 간단하게 생성가능, 초기값 지정할 때 사용

[number**3 for number in numbers]
[number for number in range(0, 11, 2)]

# 조건표현식도 가능
[-i if i % 2 else i for i in range(1, 11)] 

# 이중 for문도 가능
[(boy, girl) for boy in boys for girl in girls] 

# 다중 포문과 조건문도 가능
[(x, y, z) for x in range(1,50) for y in range(x,50) for z in range(y,50) if x**2 + y**2 == z**2 ]

 

3. 데이터 구조에 적용가능한 Built-in Function

순회 가능한(iterable) 데이터 구조에 적용가능한 Built-in Function

iterable 타입 - list, dict, set, str, bytes, tuple, range

  • map()
  • filter()
  • zip()

 

3.1 map()

  • 순회가능한 데이터 구조(iterable)의 모든 요소에 function을 적용한 후 그 결과를 돌려준다.
  • return은 map_object 형태이다.
# 함수의 인풋 받을 때 변환용도로 많이 쓰임
numbers = [1, 2, 3]
new_numbers = ''.join(list(map(str,numbers)))
print(new_numbers) # => '123'

a = '3 5'
map_a = map(int, a.split())
print(list(map_a)) # => [3, 5]

 

3.2 filter(function, iterable)

  • iterable에서 function의 반환된 결과가 True 인 것들만 구성하여 반환한다.
  • filter object 를 반환한다.
def odd(n):
    return n % 2

numbers = [1, 2, 3]
new_numbers = list(filter(odd, numbers))
print(new_numbers) # => [1, 3]

 

3.3 zip(*iterables)

  • 복수의 iterable 객체를 모아(zip())준다.
  • 결과는 튜플의 모음으로 구성된 zip object 를 반환한다.
girls = ['jane', 'ashley', 'mary']
boys = ['justin', 'eric', 'david']
pair = list(zip(girls, boys))
print(pair) # => [('jane', 'justin'), ('ashley', 'eric'), ('mary', 'david')]

 

4. 세트(Set)

변경 가능하고(mutable), 순서가 없고(unordered), 순회 가능한(iterable)

매서드출력
.add(‘복숭아’)세트에 원소 추가
.update((‘복숭아’, ‘딸기’))세트에 여러개 원소 추가
.remove(‘사과’)원소제거, 없는 원소일 경우 오류
.discard(‘딸기’)원소제거, 없는 원소여도 오류안남
.pop()랜덤한 값 제거 및 반환

 

5. 딕셔너리(Dictionary)

변경 가능하고(mutable), 순서가 없고(unordered), 순회 가능한(iterable)Key: Value 페어(pair)의 자료구조

매서드출력
my_dict[‘pineapple’]해당 키에 맞는 벨류 반환 없으면 오류
my_dict.get(‘pineapple’)해당 키에 맞는 벨류 반환 없어도 오류 안남, 오류날 경우 디폴트값 지정 가능 my_dict.get(‘pineapple’,0)
.pop(key[, default])키가 딕셔너리에 있으면 제거하고, 값 반환 / 없으면 디폴트 값 반환, 디폴트 없으면 오류!
.update({‘peach’ : ‘복숭아’})딕셔너리 값 추가, 동일한 키값이 있으면 덮어씀

 

5.1 Dictionary comprehension

a = [1, 2, 3]
{str(n) : n for n in a} # => {'1': 1, '2': 2, '3': 3}

blood_types = {'A': 40, 'B': 11, 'AB': 4, 'O': 45}
negative_blood_types = {'-' + key: value for key, value in blood_types.items()}

'Python' 카테고리의 다른 글

Python_07_OOP  (0) 2021.04.13
Python_06_모듈&패키지  (0) 2021.04.09
Python_04_예외처리  (0) 2021.04.06
Python_03_함수  (0) 2021.04.05
Python_02_제어문  (0) 2021.04.04