TIl
4. 데이터타입
아크몽
2024. 1. 13. 18:23
자료형
type() 함수를 통해 자료형 쉽게 확인 가능
크게 숫자(number), 시퀀스(sequence)m 매핑(mapping)등으로 나눌 수 있음
1. 숫자
정수 ( int ) , 부동소수점수( float), 복소수 (complex )
1-1 정수 int
100_000_000 # 세 자리마다
100000000
>>> 1_0000_0000 # 네 자리마다
100000000
이런 표현식 가능
1-2 부동소수점수 flaot
type(2.8) # 부동소수점수
5 / 3
1.6666666666666667
1-3 복소수 complex
type(3+4j) # 복소수
파이썬에서는 허수를 j로 나타냅니다.
(1j) ** 2
(-1+0j)
(1 + 1j) ** 10 # (1+1j)**2 = 1 + 2j + j**2 = 2j => (2j)**5 => 32j**5 => 32j
32j
2. 시퀀스
문자열 (str), 리스트(list), 튜플(tuple), 사용자 정의 클래스
for 문에서 사용할 수 있는 것들
type("Love your Enemies, for they tell you your Faults.")
type(['love', 'enemy', 'fault']) # ['','',''] 리스트
type(('love', 'enemy', 'fault')) # ('','','') 튜플
2-1. 문자열
슬라이싱
x = 'banana'
x[0] => 'b'
x[2:4] => 'na' # 2이상 4미만
x[:3] => 'ban' # ~ 3미만
x[3:] => 'ana' # 3이상
x[::-1] => 'ananab' # 역순으로 복사
- x[0] = 'n' (X)
- .find() : 문자열의 어떤글자의 인덱스번호
- .rstrip() : 오른쪽의 공백(여백) 제거
- .split() : 분할한 리스트 생성
2-2 리스트
prime = [a,b,c]
- .apend(d) : 마지막 인덱스로 추가 하는것
- .sort() : 원소 크기 순으로 정렬
- .insert(x,y) : x 앞에 y값 삽입
- pop() : 원소 삭제 후 해당 원소를 반환 z = prime.pop() 할 경우 prime은 [a,b] z = c 가 됨
- primme[0] = 1 (0) # 문자열과의 차이점
- 리스트 안의 리스트 (0)
orders = [ a, [b,c], d] orders[1][0] = b
- 슬라이싱 가능
2-3 튜플 tuple
()로 감싼다, 물론 안 깜싸도 가능
def magu_print(x, y, *rest): # 마구 찍어 함수 print(x, y, rest)
magu_print(1, 2, 3, 5, 6, 7, 9, 10)
1 2 (3, 5, 6, 7, 9, 10)
# 함수를 정의할 때 인자에 별표를 붙여두면
# 그 이후에 들어오는 것은 모두 튜플에 집어넣는 것
# 원소값을 직접 바꿀순 없음
p = (1,2,3)
q =p[:1] + (5,) + p[2:]
print(q) # (1, 5, 3)
r = p[:1], 5, p[2:]
print(r) # ((1,), 5, (3,))
튜플 <-> 리스트 간 바꾸기 가능함
3. 매핑
딕셔너리( dict )는 키 ( key ), 값( value )의 짝으로 이뤄짐 = 매핑
type({'one': 1, 'two': 2, 'three': 3}) # {'':1, '':2, '':3 } 매핑
해싱(hashing)기법 사용 = 자료가 순서대로 저장X
- 항목 추가 : smalldic['python'] = 'snake'
- 항목 삭제 : del smalldic['dictionary']
- 키 얻기 : smalldic.keys()
- 값 얻기 : smalldic.values()
- 원소(키/값 쌍) 얻기 : smalldic.items()
- 키 확인 : 'x' in 딕셔너리
4. 기타
4-1 불 bool : 참 거짓 표현
4-2 세트 set : 집합을 표현
세트는 원소의 순서가 유지되지 않고 중복 원소를 갖지 않는 ‘집합’으로서의 특징이 있으며, 집합 연산을 사용할 수 있습니다.