Language/Python

[Python] 1_자료형

Deveun 2021. 4. 29. 02:27

- 파이썬 자료형 기본

'''
파이썬에서 변수는 자료형이 저장된 메모리의 주소를 가리킨다.
'''
id(a) # a 변수가 가리키는 주소값

### 얕은 복사
a = [1,2,3]
b = a
# >>> id(a) == id(b)

### 깊은 복사
a = [1,2,3]
b = a[:] # or
b = copy(a)
# >>> id(a) != id(b)

### Swap
a = 3
b = 5
a, b = b, a
# >>> a == 5 , b == 3

 

- 숫자, 문자열, boolean 자료형

a = 123	# 정수
a = 1.2	# 실수
a = 'a"b"c' # " 포함 문자열
a = "a'b'c" # ' 포함 문자열
a = '''
line1
line2
'''			# 멀티라인 문자열 (""" or ''')

# 숫자 연산
a + b 	# >>> 덧셈
a - b 	# >>> 뺄셈
a * b 	# >>> 곱셉
a / b 	# >>> 나눗셈(실수)
a // b	# >>> 나눗셈(몫)
a % b	# >>> 나머지
a ** b 	# >>> a의 b제곱

# 문자 연산
# a = 'abc'
# b = 'ABC'
a + b 	# >>> abcAbc 
a * 2	# >>> abcabc
len(a)	# >>> 문자열 길이
a[2]	# >>> 문자열 인덱싱 (0부터)
a[1:2]	# >>> 문자열 슬라이싱 (1 <= a < 2)
### 문자열의 요솟값은 변경 불가 (immutable)
### >> 요소 변경시 슬라이싱 기법 사용

# 문자열 포맷
# %s String %c Character %d Integer %f Float %o 8진수 %x 16진수 %%
"%d %s %s" %(10, "abc", 1.5)	# >>> 10 abc 1.5 
"%3s" %"hi" # 자리수 설정 >>> '   hi' 
"0.4f" %3.4213425 # 소수점 설정 >>> 3.4213
### format() 함수
"hello {0}".format("world") # >>> hello world
"one {a} three {b}".format(a="two", b=4) # >>> one two three 4
"{0:<10}".format(a) # 왼쪽 정렬
"{0:>10}".format(a) # 오른쪽 정렬
"{0:^10}".format(a) # 가운데 정렬
"{0:=^10}".format(a) # 가운데 정렬 & 빈자리 =으로 채우기
"{0:3.4f}".format(a) # 소수점 설정
### f 문자열 포매팅
a= "abc"
f'hello {a} world' # >>> hello abc world
### 문자열 관련 함수
a = "hello world"
a.count('l') # 문자 갯수 세기 >>> 3
a.find('0') # 문자 위치(0부터) >>> 4 ### <-> index() 없을시 오류발생여부
",".join('abcd') # >>> a,b,c,d
a.replace("hello", "hi") # >>> hi world
" abc ".strip() # >>> "abc"
a.split() # >>> ['hello'. 'world']

# 불 (bool)
### True or False
### 문자열, 리스트, 튜플, 딕셔너리 등 값이 없으면 False
### 숫자값이 0이면 Flase

 

- 리스트, 튜플, 딕셔너리, 집합 자료형

# 리스트
### 숫자 문자열 리스트 를 요소로 가짐
a = [1, 2, 'a', ['b','c']]
a[0:2] # 슬라이싱 >>> [1,2]
a[3][:1] # >>> ['b']
[1, 2]*2 # >>> [1, 2, 1, 2]
len(a) # >>> 4
del a[1] # 파이썬 del() 함수
### 리스트 함수
a = [1, 2, 3, 1]
a.append(4) # 요소추가
a.sort() # 정렬
a.reverse() # 역순으로
a.index(2) # 요소 위치
a.insert(A,B) # A위치에 B삽입 
a.remove(A) # 첫 A삭제
a.pop() # 마지막 요소를 리턴하며 삭제
a.count(A) # A요소의 갯수
a.extend(['a','b']) # 리스트 확장 (a+=['a','b'])
"".join(a) # 리스트 a 를 string으로 변환할 수 있다

# 튜플
### 리스트와 차이점
### [] X () 로 표기
### 값 수정, 삭제 불가능
### 1개의 요소만 가질 때는 (1,) 컴마를 꼭 남겨야 함
### () 괄호 생략 가능
t1 = ()
t2 = (1, )
t3 = 1, 2, 3
t4 = ('a','b', (1,2))


# 딕셔너리(Map)
### 대응 관계의 자료형 (Associative array or Hash)
### 중복키는 무시됨. 튜플을 Key로 사용 가능 (리스트는 불가)
a = {'Key1' : 'Value1'}
a['Key2'] = 'Value2' # 쌍 추가하기
del a['Key1'] # 쌍 삭제하기
### 딕셔너리 함수
a.keys() # >>> dict_keys(['Key1', 'Key2', 'Key3']) ---> list(a.keys()) 로 리스트 변환
a.values() # >>> dict_values(['Val1', 'Val2', 'Val3'])
a.items() # 튜플쌍 >>> dict_items([('Key1', 'Val1'), ('Key2', 'Val2')])
a.get('Key1') # Val1 / 없을시엔 None
'Key1' in a # >>> True or False
a.clear()

#집합 자료형(Set)
### 중복X 순서X
s1 = set([1,2,3]) # >>> {1, 2, 3}
s2 = set("Hello") # >>> {'H','e','l', 'o'}
s1 & s2 # 교집합 == s1.intersection(s2)
s1 | s2 # 합집합 == s1.union(s2)
s1 - s2 # 차집합 == s1.difference(s2)
### 집합자료형 함수
s1.add(1) # 요소 추가
s1.update([1,2,3]) # 여러개 추가
s1.remove(2) # 요소 삭제

 


참고: wikidocs.net/book/1

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net