[이것이 취업을 위한 코딩 테스트다 with 파이썬] 1-2강(문자열, 튜플, 사전, 집합 자료형)

2021. 4. 27. 20:27민공지능/알고리즘

* 유튜브를 보고 정리한 내용입니다.

이것이 취업을 위한 코딩 테스트다 with 파이썬, 저자 나동빈

 

백슬래시(\)는 escape 문자를 만들기 위해 사용할 수 있으며, 파이썬 문법이 정해놓은 약속

data = "Don't you know \"python\"?" 
print(data)

# Don't you know "python"?

a = "Hello"
b = "World"
print(a+ " " +b)
#Hello World

a = "String"
print(a * 3)
# StringStringString

a = "ABCDEF"
print(a[2:4])
# CD

a[2] = 'a'
# 'str' object does not support item assignment
# 문자열 자료형은 원소 할당을 지원하지 않는다

튜플은 리스트에 비해 더 적은양의 메모리를 사용한다.

a = (1,2,3,4,5,6,7,8,9)

# 네 번째 원소만 출력
print(a[3])
# 4

# 두 번째 원소부터 네 번째 원소까지
print(a[1:4])
# (2,3,4)

a[2] = 7
# 'tuple' object does not support item assignment
# 튜플 자료형은 원소 할당을 지원하지 않는다

비용은 실수형, 노드 번호는 정수형으로 처리할 때 튜플 자료형을 자주 사용한다.

리스트는 변경되기 때문에 키 값으로 사용될 수 없다.


O(1) 상수시간에 처리할 수 있기 때문에 문자와 같은 키를 사용해서 데이터를 저장하고 관리하는 상황에서 리스트보다 효율적이다 

  • 사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원한다.
  • 키 데이터만 뽑아서 리스트로 이용할 때는 keys()함수를 이용한다.
  • 값 데이터만을 뽑아서 리스트로 이용할 때는 values()함수를 이용한다.
a = dict()
a['홍길동'] = 97
a['이순신'] = 98
print(a)
#{'홍길동': 97, '이순신': 98}

b = {'홍길동' : 97, '이순신' : 98}
print(b)
#  {'홍길동': 97, '이순신': 98}
print(b['이순신'])
# 98

key_list = list(b.keys())
print(key_list)
# ['홍길동', '이순신']


# 집합 자료형 초기화 방법 1
data = set([1,1,2,3,4,4,5])
print(data)
# {1, 2, 3, 4, 5}

# 집합 자료형 초기화 방법 2
data={1,1,2,3,4,4,5}
print(data)
# {1, 2, 3, 4, 5}

a = set([1,2,3,4,5])
b = set([3,4,5,6,7])

# 합집합
print(a | b)
# {1, 2, 3, 4, 5, 6, 7}

# 교집합
print(a & b)
# {3, 4, 5}

# 차집합
print(a - b)
# {1, 2}

# 새로운 원소 추가
a.add(6)
print(a)
#{1, 2, 3, 4, 5, 6}

# 새로운 원소 여러개 추가
a.update([3,7,9])
print(a)
# {1, 2, 3, 4, 5, 6, 7, 9}

# 특정한 값을 갖는 원소 삭제
a.remove(3)
print(a)
# {1, 2, 4, 5, 6, 7, 9}

< 사전 자료형과 집합 자료형의 특징>

  • 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
  • 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
  • 사전의 키(key) 혹은 집합의 원소(Element)를 이용해 O(1)의 시간 복잡도로 조회한다.