Programming/python

[파이썬 기초] 파이썬 자료형의 모든 것!

방황하는 데이터불도저 2023. 3. 14. 01:09

1. 수치형 (Number)

  •  int : 정수형
  •  float : 실수형
i = 123
type(i)  # <class 'int'>


# 가능한 자료형 변환 (float도 동일)
int(i)        # 123
float(i)      # 123.0
str(i)        # '123'
repr(i)       # '123'
bool(i)       # True
if i == None:
	bool(i)   # False
[i]           # [123]  < 이렇게 list로 생성 가능
(i)           # (123)  < 이렇게 tuple로 생성 가능
{i}           # {123}  < 이렇게 set으로 생성 가능
{i : "int"}   # {123 : "int"}  < 이렇게 dictionary로 생성 가능


# 불가능한 자료형 변환
list(i)
tuple(i)
dict(i)
set(i)

 

2. 문자열 (String)

  •  ' ' 또는 " "
  •  str : 일반 문자열
  •  repr : str에서 프로그램 상의 문자까지 취급
### 가능한 자료형 변환

s = "123"
type(s)           # <class 'str'>

int(s)            # 123
float(s)          # 123.0
bool(s)           # True
if value == None:
	bool(s)       # False
list(s)           # ['1', '2', '3']
tuple(s)          # ('1', '2', '3')
set(s)            # {'2', '1', '3'}  < 순서가 저장되지 않으니 주의!!


### str을 dict로 변환하는 방법!

s = "{'key' : 'value'}"
eval(s)                 
# Output : {'key': 'value'}


### 불가능한 자료형 변환

s = "apple"
type(s)      # <class 'str'>

int(s)       # ValueError: invalid literal for int() with base 10: 'apple'
float(s)
dict(s)

 

https://kyull-it.tistory.com/125

 

파이썬 문자열 연산의 모든 것! Python String Operators / Methods

1) 소문자, 대문자 변환 # 소문자로 만들어주는 함수 s.lower() # 대문자로 만들어주는 함수 s.upper() 2) 패턴 변환 # s의 문자열 중에서 old_pattern이 있다면, new_pattern으로 수정해서 리턴 s.replace("old_patter

kyull-it.tistory.com


3. 부울, 불리언 (Bool, Boolean)

  • True/참/일치  또는  False/거짓/일치하지 않음

 - bool을 output으로 출력하는 함수들 (파이썬 자료형 관련된 기본 기능들)

# 변수가 문자열인 경우
s = "1234"

# 어떤 변수든지 그 변수가 어떤 type인지 확인할 수 있음
isinstace(s, int)  # False
isinstace(s, str)  # True

# s가 숫자인지 확인하는 함수
# s가 문자열일 때만 사용가능
s.isdigit()       # True
s.isnumeric()     # True
# s = 2²
# s.isdigit()     # False
# s.isnumeric()   # True

# s가 알파벳으로만 구성되어있는가?
s.isalpha()       # False

# 변수가 숫자인 경우
s = 1234.0
int(s) == float(s) # True

# s가 float형일 때만 사용가능
s.is_integer()      # True

 


4. 리스트 (List)

  •  숫자, 문자, bool, 리스트, 튜플, 사전을 모두 담을 수 있는 배열 형태의 자료형

 - 리스트 생성 방법

l = []
l = [1]
l = [1,2,3,4,5]

 - 리스트에 값 추가하는 방법

list.append(value)

list.insert(index, value)

list = list + list

 

5. 튜플 (Tuple)

  •  immutable list (리스트와 동일한 특성에 객체 선언 이후에 수정할 수 없다는 특징이 있다.)

 - 튜플 생성 방법 (packing)

t = ( )
t = (1,)
t = (1,2,3,4,5) 
# 바로 이렇게도 가능
t = 1,2,3,4,5          # (1,2,3,4,5)  <-- tuple로 packing

 - 튜플의 값 꺼내기 (unpacking)

n = 1,2,3,4,5

one, two, three, four, five = n

print(one, two, three, four, five)
# 1 2 3 4 5

one, two, *others= n
print(others)
# [3, 4, 5]
# *를 사용하면 리스트(list)로 packing

 - 여러 튜플을 사전으로 만드는 법

pairs = [('IBM', 125), ('ACME', 50), ('PHP', 40)]
d = dict(pairs)
# {'IBM': 125, 'ACME': 50, 'PHP': 40}

 

5. 사전 (Dictionary)

  •  key : value 형태의 사전 자료형
  •  key, value에는 파이썬의 모든 자료형이 들어갈 수 있음
  •  표 형태의 자료형으로 사용하기에 효율적

 - dict 변수 생성 방법

d = {}
d = dict()

d = {1 : 1}
d = {1:1, 2:2, 3:3, 4:4, 5:5}

 - 변형으로 str 형태의 key값을 가지는 경우, 아래와 같이 선언해줄 수 있다.

nums = dict(one=1, two=2, three=3)
nums      
# {'one': 1, 'two': 2, 'three': 3}

 - 활용방법

# "key"가 dict에 있으면 dict["key"]를 리턴하고, 없다면 value를 리턴함
p = dict.get("key", value) 

# 값 삭제
del dict["key"]

# multiple key를 사용하고 싶을 때, key자리에 tuple 또는 list를 사용
dict["key1", "key2"] = value
dict[("key1", "key2")] = value

# 키 리스트
k = dict.keys()  :  dict가 수정되면 k도 수정됨
l = list(dict)  : dict가 수정되도 l은 수정되지 않음

# 값 리스트
v = dict.values()  :  dict가 수정되면 v도 수정됨

# key-value pairs 얻는법
i = dict.items()

 

6. 집합 (Set)

  • 집합 내의 값은 중복되지 않는다 = 고유한 값(unique value)들의 집합
  • 값의 배열 순서도 저장하지 않음
  • 복사되지도 않으며, indexing할 수도 없음

 - 집합 생성 방법

s = {}
s = {1}
s = {1,2,3,4,5}

 - 집합의 연산

  • a = t | s    Union : 합집합
  • b = t & s   Intersection : 교집합
  • c = t - s    Difference : 차집합
  • d = t ^ s    Symmetric difference : 여집합

 - 집합 내의 원소 추가 및 제거하는 방법

 

t.add(value)       # a single item

s.update({value, value, value})    # multiple items

t.remove(value)    # value가 t에 속하지 않을 때, KeyError 발생

s.discard(value)    # value가 s에 속하지 않아도 에러발생 안함

 

* set, list, dictionary는 comprehension 사용이 가능하다.