[Jump-to-Python] 자료형

2024. 12. 22. 12:51·Study/Python

자료형에는 숫자, 문자열, 불, 변수, 리스트, 튜플, 딕셔너리, 집합이 존재합니다.

변수는 값을 담을 수 있는 박스를 의미합니다.

1. 숫자형

  • 정수형 : int (-1, 2, -2)
# 정수형
a = 123
print(a) # 123
print(type(a)) # class 'int'
  • 실수형 : float (1.24, -34.56)
# 실수형
a = 1.2
print(a) # 1.2
print(type(a)) # class 'float'
  • 컴퓨터식 지수 표현 방식 (4.24e10, 4.24e-10)
# 컴퓨터식 지수 표현 방식
a = 4.24E10
print(a) # 42400000000.0
print(type(a)) # class 'float'
  • 8진수 (0o37)
  • 16진수 (0x7A)
# 8진수와 16진수
a = 0o10
print(a) # 8
print(type(a)) # class 'int'
b= 0xb
print(b) # 11
print(type(b)) # class 'int'

1-1. 사칙연산

사칙연산 : +, -, *, /

  • x의 y 제곱을 나타내는 ** 연산자
  • 나눗셈 후 나머지를 리턴하는 % 연산자
  • 나눗셈 후 몫을 반환하는 // 연산자
# 사칙연산
a = 3
b = 4
print(a + b) # 7
print(a - b) # -1
print(a * b) # 12
print(a / b) # 0.75
print(a ** b) # 81
print(7 % 3) # 1
print(7 // 4) # 1

2. 문자열 자료형

문자열(String) : 문자들의 집합

  • 문자열 만드는 방법
    1. 큰따옴표(" ")로 양쪽 둘러싸기
    2. 작은따옴표(' ')로 양쪽 둘러싸기
    3. 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
    4. 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
# 큰따옴표로 양쪽 둘라싸기
a = "Hello World"
print(type(a)) # class 'str'

# 작은따옴표로 양쪽 둘러싸기
b = 'Python is fun'
print(type(b)) # class 'str'

# 큰따옴표 3개
c = """I am jioni"""
print(type(c)) # class 'str'
print(c) # I am jioni

# 작은따옴표 3개
d = '''I am busy'''
print(type(d)) # class 'str'
print(d) # I am busy

문자열 안에 작은따옴표나 큰따옴표를 포함하고 싶을 때

  1. 문자열에 작은따옴표(' ') 포함시키기
  2. 문자열에 큰따옴표(" ") 포함시키기
  3. 백슬래시(\)를 사용해서 작은따옴표(' ')와 큰따옴표(" ")를 문자열에 포함시키기
# 문자열에 작은따옴표(') 포함시키기
a = "Jihyun's favorite color is black."
print(a) # Jihyun's favorite color is black.

# 문자열에 큰따옴표(") 포함시키기
a = 'Life " is too short.'
print(a) # Life " is too short.

여러 줄인 문자열을 변수에 대입하고 싶을 때

  1. 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
  2. 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기
  • 이스케이프 코드
    1. \n : 문자열 안에서 줄을 바꿀 때 사용
    2. \t : 문자열 사이에 탭 간격을 줄 때 사용
    3. \\ : 문자 \를 그대로 표현할 때 사용
    4. \' : 작은따옴표(')를 그대로 표현할 때 사용
    5. \" : 큰따옴표(")를 그대로 표현할 때 사용
# 백슬래시 사용
a = "Life \" is too short"
print(a)
b = 'I\'m hungry.'
print(b)

# 작은따옴표 3개 또는 큰따옴표 3개 사용하기
a = '''Life is too short
You need python'''
print(a)
b = """Life is too short
You need python"""
print(b)

2-1. 문자열 연산하기

1. 문자열 더해서 연결하기 (Concantenation)

# 문자열 더해서 연결하기
a = "Python"
b = " is fun."
print(a + b) # Python is fun.

2. 문자열 곱하기

  • 단, 문자열과 숫자만 곱하는 것이 가능
  • 문자열 * 문자열은 불가능
# 문자열 곱하기
a = "Python "
b = " is fun."
print(a + b) # Python is fun.

3. 문자열 길이 구하기 (len)

  • len은 length의 약자
# 문자열 길이 구하기
a = "Life is too short."
print(len(a)) # 18

2-2. 문자열 인덱싱과 슬라이싱

인덱싱(indexing)은 가리키다라는 의미이고 슬라이싱(Slicing)은 잘라낸다는 의미입니다.

1. 문자열 인덱싱

인덱싱은 문자열 안의 특정한 값을 뽑아내는 역할을 합니다.

  • 파이썬은 0부터 숫자를 셉니다.
  • a[번호]는 a 문자열 안의 특정 번호의 값을 뽑아낸다는 의미입니다.
  • 뒤에서부터 읽기 위해서는 마이너스(-) 기호를 붙입니다.
  • 단, 0과 -0은 동일한 값입니다.
# 문자열 인덱싱
a = "jihyun is busy."
print(a[3]) # y
print(a[0]) # j
print(a[-2]) # y

2. 문자열 슬라이싱

슬라이싱은 덩어리로 자르겠다는 의미입니다.

  • a[: :] => a[이상:미만:간격]

3. 문자열을 슬라이싱하는 방법

  • a[시작 번호:끝 번호] 지정할 때, 끝 번호에 해당하는 것은 포함하지 않습니다.
  • 슬라이싱할 때 항상 시작 번호가 0일 필요는 없습니다.
  • a[시작 번호:] => 시작 번호 ~ 끝까지
  • a[:끝 번호] => 처음부터 ~ 끝 번호까지
  • a[:] => 처음부터 ~ 끝까지
  • 마이너스(-) 기호 사용 가능
Python은 immutable한 자료형이기 때문에 슬라이싱을 사용하여 잘못 문자열을 바꿀 수 있습니다.
# 문자열 슬라이싱
a = "jihyun is busy."
b = a[0:4]
print(b) # jihy

# 슬라이싱_끝 번호 생략
c = a[5:]
print(c) # n is busy.

# 슬라이싱_간격
d = a[::2]
print(d) # jhu sbs.

# 슬라이싱으로 문자열 나누기
a = "20241219Sunny"
date = a[:8]
weather = a[8:]
print(date) # 20241219
print(weather) # Sunny

2-3. 문자열 포매팅

문자열 포매팅(Formatting)은 문자열 안에 어떤 값을 삽입하는 방법을 의미합니다.

1. 숫자 바로 대입

# 숫자 바로 대입
a = "I eat %d apples." % 3
print(a) # I eat 3 apples.

2. 문자열 바로 대입

# 문자열 바로 대입
a = "I eat %s apples." % "five"
print(a) # I eat five apples.

3. 숫자 값을 나타내는 변수로 대입

# 숫자 값을 나타내는 변수로 대입
number = 3
a = "I eat %d apples." % number
print(a) # I eat 3 apples.

4. 2개 이상의 값 넣기

# 2개 이상의 값 넣기
number = 10
day = "three"
a = "I ate %d apples. So I was sick for %s days." % (number, day)
print(a) # I ate 10 apples. So I was sick for three days.

 

2-3-1. 문자열 포맷 코드

  • %s : 문자열 (string)
  • %c : 문자 1개 (character)
  • %d : 정수 (integer)
  • %f : 부동소수 (floating-point)
  • %o : 8진수
  • %x : 16진수
  • %% : Literal % (문자 % 자체)
- %s : 어떤 형태의 값이든 변환해서 넣을 수 있습니다.
- %d와 %를 같이 쓸 때는 %%를 사용합니다.
# %d%%를 어떻게 사용할까
a = "Error is %d%%." % 98
print(a) # Error is 98%.

2-3-2. 포맷 코드와 숫자 함께 사용하기

1. 정렬과 공백 

a = "%10s" % "hi"
print(a)
  • 전체 길이가 10개인 문자열 공간에서 대입되는 값을 오른쪽으로 정렬하고 그 앞의 나머지는 공백으로 남겨두라는 의미입니다.
  • 왼쪽 정렬 : %-10s
# 정렬과 공백
a = "%10s" % "hi"
print(a) #         hi
b = "%-10s" % "hi"
print(b) # hi

2. 소수점 표현하기

# 소수점 표현하기
a = "%0.4f" % 3.42134234
print(a) # 3.4213

2-3-3. format 함수를 사용한 포매팅

1. 숫자 바로 대입하기

# 숫자 바로 대입하기
a = "I eat {0} apples.".format(3)
print(a) # I eat 3 apples.

2. 문자열 바로 대입하기

# 문자열 바로 대입하기
a = "I eat {0} apples.".format("five")
print(a) # I eat five apples.

3. 숫자 값을 가진 변수를 대입하기

# 숫자 값을 가진 변수를 대입하기
number = 3
a = "I ate {0} apples.".format(number)
print(a)

4. 2개 이상의 값 넣기

# 2개 이상의 값 넣기
number = 10
day = "three"
a = "I ate {0} apples. So I was sick for {1} days.".format(number, day)
print(a) # I ate 10 apples. So I was sick for three days.

5. 이름으로 넣기

# 이름으로 넣기
a = "I ate {number} apples. So I was sick for {day} days.".format(number=10, day=3)
print(a) # I ate 10 apples. So I was sick for 3 days.

6. 인덱스와 이름을 혼용해서 넣기

# 인덱스와 이름을 혼용해서 넣기
a = "I ate {0} apples. So I was sick for {day} days.".format(10, day=3)
print(a) # I ate 10 apples. So I was sick for 3 days.

7. 왼쪽 정렬

8. 오른쪽 정렬

9. 가운데 정렬

# 왼쪽 정렬, 오른쪽 정렬, 가운데 정렬
a = "{0:<10}".format("hi")
print(a) # hi        
b = "{0:>10}".format("hi")
print(b) #         hi
c = "{0:^10}".format("hi")
print(c) #     hi

10. 공백 채우기

# 공백 채우기
a = "{0:=^10}".format("hi")
print(a) # ====hi====

11. 소수점 표현하기

# 소수점 표현하기
y = 3.42134234
a = "{0:0.4f}".format(y)
print(a) # 3.4213

12. { 또는 } 문자 표현하기

# { 또는 } 문자 표현하기
a = "{{ and }}".format()
print(a) # { and }

2-3-4. f 문자열 포매팅

이것을 가장 많이 사용

# f 문자열 포매팅
name = "강지현"
age = 25
a = f"나의 이름은 {name}입니다. 나이는 {age}입니다."
b = f"나는 내년이면 {age+1}살 입니다.
print(a) # 나의 이름은 강지현입니다. 나이는 25입니다.
print(b) # 나는 내년이면 26살 입니다.

2-4. 문자열 관련 함수

문자열 관련 함수를 문자열 내장 함수라고도 부릅니다.

이는 문자열 변수 이름 뒤에 . 를 붙인 다음에 함수 이름을 써주면 됩니다. 이들을 method라고 부릅니다.

1. 문자 개수 세기 (count)

# count
a = "hobby"
print(a.count("b")) # 2

2. 위치 알려주기 1 (find)

  • 몇 번째에 위치하는가를 표현
  • 없는 값을 찾아달라고 하면 -1 이 반환
# find
a = "hobby"
print(a.find("b")) # 2

3. 위치 알려주기 2 (index)

  • 없는 값을 찾아달라고 하면 오류가 뜸
# index
a = "hobby"
print(a.index("b")) # 2

4. 문자열 삽입 (join)

  • 각각의 문자 사이에 .join 앞의 문자를 삽입
# join
a = ",".join("abcd")
print(a) # a,b,c,d

5. 소문자를 대문자로 바꾸기 (upper)

# upper
a = "hi"
print(a.upper()) # HI

6. 대문자를 소문자로 바꾸기 (lower)

# lower
a = "HI"
print(a.lower()) # hi

7. 왼쪽 공백 지우기 (lstrip)

8. 오른쪽 공백 지우기 (rstrip)

9. 양쪽 공백 지우기 (strip)

# lstrip, rstrip, strip
a = " hi "
print(a.lstrip()) # hi
print(a.rstrip()) #   hi
print(a.strip()) # hi

10. 문자열 바꾸기 (replace)

# replace
a = "Life is too short"
print(a.replace("Life", "Your leg")) # Your leg is too short

11. 문자열 나누기 (split)

  • 리스트 형식으로 나뉨
# split
a = "Life is too short"
print(a.split()) # ['Life', 'is', 'too', 'short']

3. 리스트 자료형

  • 리스트 = 서랍장
  • 리스트명 = [요소1, 요소2, 요소3]
    파이썬은 한 리스트에 여러 자료형을 넣을 수 있고 리스트 안에 리스트를 넣을 수도 있습니다.
# 리스트는 어떻게 만들고 사용할까?
odd = [1, 3, 5, 7, 9]
print(odd) # [1, 3, 5, 7, 9]
print(type(odd)) # class 'list'

3-1. 리스트의 인덱싱과 슬라이싱

1. 리스트의 인덱싱

  • 리스트 내에 리스트가 존재할 수 있습니다.
# 리스트의 인덱싱
a = [1, 2, 3]
print(a[0]) # 1
print(a[1]+a[2]) # 5
print(a[-1]) # 3
# 리스트 안에 리스트
a = [1, 2, 3, ['a', 'b', 'c']]
print(a[3]) # ['a', 'b', 'c']
print(a[3][1]) # b

2. 리스트의 슬라이싱

# 리스트의 슬라이싱
a = [1, 2, 3, 4, 5]
print(a[0:2]) # [1, 2]
# 중첩된 리스트에서 슬라이싱
a = [1, 2, 3, ['a', 'b', 'c'], 4, 5]
print(a[2:5]) # [3, ['a', 'b', 'c'], 4]

3-2. 리스트 연산하기

1. 리스트 더하기 (+)

# 리스트 더하기
a = [1, 2, 3]
b = [4, 5, 6]
print(a + b) # [1, 2, 3, 4, 5, 6]

2. 리스트 반복하기 (*)

# 리스트 반복하기
a = [1, 2, 3]
b = 3
print(a * b) # [1, 2, 3, 1, 2, 3, 1, 2, 3]

3. 리스트 길이 구하기 (len) 

# 리스트 길이 구하기
a = [1, 2, 3]
print(len(a)) # 3

3-3. 리스트의 수정과 삭제

1. 리스트에서 값 수정하기

# 리스트에서 값 수정하기
a = [1, 2, 3]
a[2] = 4
print(a) # [1, 2, 4]

2. del 함수 사용해 리스트 요소 삭제하기

  • del 객체
# del 함수 사용해 리스트 요소 삭제하기
a = [1, 2, 3]
del a[-1]
print(a) # [1, 2]
  • 슬라이싱 기법 사용하여 한 번에 삭제도 가능
# del 함수와 슬라이싱 기법 사용해 리스트 요소 삭제하기
a = [1, 2, 3, 4, 5]
del a[2:]
print(a) # [1, 2]

3-4. 리스트 관련 함수

1. 리스트에 요소 추가 (append)

# append
a = [1, 2, 3]
a.append(4)
print(a) # [1, 2, 3, 4]
a.append([5, 6])
print(a) # [1, 2, 3, 4, 5, 6]

2. 리스트 정렬 (sort)

# sort
a = [1, 4, 3, 2]
a.sort()
print(a) # [1, 2, 3, 4]
b = ['a', 'g', 'c']
b.sort()
print(b) # ['a', 'c', 'g']

3. 리스트 뒤집기 (reverse)

# reverse
a = ['a', 'c', 'b']
a.reverse()
print(a) # ['b', 'c', 'a']

4. 위치 변환 (index)

# index
a = [1, 2, 3]
print(a.index(3)) # 2

5. 리스트에 요소 삽입 (insert)

  • a.insert(0, 4) => 0번째 index에 4를 추가
# insert
a = [1, 2, 3]
a.insert(0, 4)
print(a) # [4, 1, 2, 3]

6. 리스트 요소 제거 (remove)

  • remove(X)는 리스트에서 첫 번째로 나오는 X를 삭제하는 함수
  • 여러 개 제거하기 위해서는 remove를 여러 번 작성
# remove
a = [1, 2, 3, 4, 1, 2]
a.remove(2)
print(a) # [1, 3, 4, 1, 2]

7. 리스트 요소 끄집어내기 (pop)

  • 리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제
# pop
a = [1, 2, 3]
a.pop()
print(a) # [1, 2]

8. 리스트에 포함된 요소 X의 개수 세기 (count)

  • count(X)는 리스트 안에 X가 몇 개 있는지 조사하여 그 개수를 돌려주는 함수
# count
a = [1, 2, 3, 1]
print(a.count(1)) # 2

9. 리스트 확장 (extend)

  • extend(X)는 X에는 리스트만 올 수 있으며 원래의 a 리스트에 X 리스트를 더하게 됩니다.
# extend
a = [1, 2, 3, 1]
a.extend([4, 5])
print(a) # [1, 2, 3, 1, 4, 5]

4. 튜플 자료형

  • 리스트와 튜플은 거의 비슷합니다. 단, 리스트는 서랍장이면 튜플은 그 서랍장에 자물쇠를 잠궈놓았다고 생각하면 됩니다.
# 튜플 만드는 방법
a = [1, 2, 3] # 리스트

# 튜플
t1 = ()
print(type(t1)) # class 'tuple'
t2 = (1, )
print(t2[0]) # 1
t3 = (1, 2, 3)
print(type(t3)) # class 'tuple'
t4 = 1, 2, 3
print(type(t4)) # class 'tuple'
t5 = ('a', 'b', ('ab', 'cd'))
print(type(t5)) # class 'tuple'

4-1. 리스트와 튜플의 차이점

  • 리스트는 [   ] 으로 둘러싸지만 튜플은 (   ) 으로 둘러쌉니다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없습니다.
  • (   ) 가 없어도 튜플입니다.
  • 튜플의 요소 값을 지우거나 변경하려고 하면 오류 메시지가 뜹니다.
- Mutable (변경 가능) : 리스트, 딕셔너리, 집합
- Immutable (변경 불가능) : 정수, 실수, 문자열, 튜플

4-2. 튜플 다루기

1. 인덱싱하기

# 인덱싱하기
t1 = (1, 2, 'a', 'b')
print(t1[1]) # 2

2. 슬라이싱하기

  • 잠깐 잘라서 보여주는 것이지 변경되지는 않음
# 슬라이싱하기
t1 = (1, 2, 'a', 'b')
print(t1[1:]) # (2, 'a', 'b')

3. 튜플 더하기

  • 새로운 튜플 만드는 것
# 튜플 더하기
t1 = (1, 2, 'a', 'b')
t2 = (3, 4)
t3 = t1 + t2
print(t3) # (1, 2, 'a', 'b', 3, 4)

4. 튜플 곱하기

# 튜플 곱하기
t2 = (3, 4)
t3 = t2 * 3
print(t3) # (3, 4, 3, 4, 3, 4)

5. 튜플 길이 구하기

# 튜플 길이 구하기
t1 = (1, 2, 'a', 'b')
print(len(t1)) # 4

immutable이기 때문에 sort, insert, remove, pop 같은 내장함수 사용 불가능


5. 딕셔너리 자료형

타 언어의 딕셔너리와 같은 개념
=> Hash, Map, Object, JSON

딕셔너리는 API에 자주 활용됩니다.

  • Key, Value를 한 쌍으로 가지는 자료형

5-1. 기본 딕셔너리의 모습

{Key1:Value1, Key2:Value2, Key3:Value3, ...}

  • 중괄호를 사용합니다.
# 딕셔너리는 어떻게 만들까?
dic = {'name':'pey', 'phone':'010-1234-5678', 'birth':'1222'}
print(dic) # {'name':'pey', 'phone':'010-1234-5678', 'birth':'1222'}
print(type(dic)) # class 'dict'
# 딕셔너리의 정보
a = {1:'hi'}
print(a) # {1:'hi'}
b = {'a' : [1, 2, 3]}
print(b) # {'a' : [1, 2, 3]}

5-2. 딕셔너리 쌍 추가, 삭제하기

1. 딕셔너리 쌍 추가하기

  • key와 value가 함께 추가
# 딕셔너리 쌍 추가하기
a = {1:'a'}
a[2] = 'b'
a[3] = [1, 2, 3]
print(a) # {1:'a', 2:'b', 3:[1, 2, 3]}

2. 딕셔너리 쌍 삭제하기

  • del 사용
# 딕셔너리 요소 삭제하기
a = {1:'a', 2:'b', 'name':'jihyun', 3: [4, 5, 6]}
del a[1], a[3]
print(a) # {2:'b', 'name':'jihyun'}

5-3. 딕셔너리 사용하는 방법

1. 딕셔너리에서 key를 사용해 value 얻기

  • 딕셔너리변수이름[Key]
# 딕셔너리에서 key 사용해 value 얻기
grade = {'jihyun':100, 'juho':30}
print(grade['jihyun']) # 100
# 딕셔너리에서 key 사용해 value 얻기_2
dic = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(dic['name']) # jihyun

5-4. 딕셔너리 만들 때 주의할 사항

  • 반드시 key는 유일해야 합니다.
  • key가 변형되면 안됩니다.
    • 리스트는 mutable이기 때문에 key로써 사용하기 적합하지 않습니다.

5-5. 딕셔너리 관련 함수들

1. Key 리스트 만들기 (keys)

  • dict_keys 객체를 리턴합니다.
# keys
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.keys()) # dict_keys(['name', 'phone', 'birth'])
# keys_2
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}

for k in a.keys():
  print(k) # name
           # phone
           # birth

2. Value 리스트 만들기 (values)

  • dict_values 객체를 리턴합니다.
# values
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.values()) # dict_values(['jihyun', '010-1234-5678', '1222'])

3. Key, Value 쌍 얻기 (items)

  • dict_items 객체를 리턴합니다.
# items
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.items()) # dict_items([('name', 'jihyun'), ('phone', '010-1234-5678'), ('birth', '1222')])

4. Key:Value 쌍 모두 지우기 (clear)

# clear
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
a.clear()
print(a) # {}

5. Key로 Value 얻기 (get)

  • 없는 값 출력할 경우 None이라는 값이 나옵니다.
# get
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print(a.get('name')) # jihyun

6. 해당 Key가 딕셔너리 안에 있는지 조사하기 (in)

# in
a = {'name':'jihyun', 'phone':'010-1234-5678', 'birth':'1222'}
print('name' in a) # True
print('email' in a) # False

6. 집합 자료형

집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형입니다.

  • set 사용
  • 비어있는 집합 자료형은 s = set()으로 만들 수 있습니다.
# 집합 자료형은 어떻게 만들까?
s1 = set([1, 2, 3])
print(s1) # {1, 2, 3}
print(type(s1)) # class 'set'
s2 = {1, 2, 3}
print(s2) # {1, 2, 3}
print(type(s2)) # class 'set'
s3 = set("Hello")
print(s3) # {'l', 'e', 'o', 'H'}
print(type(s3)) # class 'set'
# set 자료형에 저장된 값을 인덱싱으로 접근하려면
s1 = set([1, 2, 3])
l1 = list(s1)
print(l1[0]) # 1

6-1. 집합 자료형의 특징

  • 중복을 허용하지 않습니다.
  • 순서가 없습니다. (Unordered)
    • 즉, 인덱스로 접근할 수 없습니다.

6-2. 교집합, 합집합, 차집합 구하기

1. 교집합

  • & 기호 사용 또는 intersection 함수
# 교집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 & s2) # {4, 5, 6}
print(s1.intersection(s2)) # {4, 5, 6}

2. 합집합

  • | 기호 사용 또는 union 함수
# 합집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 | s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
print(s1.union(s2)) # {1, 2, 3, 4, 5, 6, 7, 8, 9}

3. 차집합

  • - 기호 사용 또는 difference 함수
# 차집합
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
print(s1 - s2) # {1, 2, 3}
print(s2.difference(s1)) # {8, 9, 7}

6-3. 집합 자료형 관련 함수들

1. 값 1개 추가하기 (add)

# add
s1 = set([1, 2, 3])
s1.add(4)
print(s1) # {1, 2, 3, 4}

2. 값 여러 개 추가하기 (update)

  • 만일 중복된 값을 추가하고자 할 때 1개만 추가됩니다.
# update
s1 = set([1, 2, 3])
s1.update([4, 4, 5, 6])
print(s1) # {1, 2, 3, 4, 5, 6}

3. 특정 값 제거하기 (remove)

# remove
s1 = set([1, 2, 3])
s1.remove(2)
print(s1) # {1, 3}

7. 불 자료형

  • 참, 거짓을 나타내는 자료입니다.
  • True나 False는 파이썬의 예약어로, 항상 첫 문자를 대문자로 사용해야 합니다.
# 불 자료형
a = True
print(a) # True
print(type(a)) # class 'bool'

7-1. 자료형의 참과 거짓

  • 문자열, 리스트, 튜플, 딕셔너리 등의 값이 있으면 참, 비어있으면 거짓
# 자료형의 참과 거짓_while문
a = [1, 2, 3, 4]
while a:
  print(a) # [1, 2, 3, 4]
  a.pop() # [1, 2, 3]
          # [1, 2]
          # [1]
# 자료형의 참과 거짓_if문
if []:
  print("참")
else:
  print("거짓") # 거짓

7-2. 불 연산

  • bool 연산을 통해 참, 거짓을 판별할 수 있습니다.
# 불 연산
a = bool([1, 2, 3])
print(a) # True
b = bool([])
print(b) # False

8. 변수

변수는 자료형의 값을 저장하는 공간으로서 주소값을 담습니다.

8-1. 변수란?

변수 이름 = 변수에 저장할 값

  • a = [1, 2, 3] 이라고 하면 [1, 2, 3] 값을 가지는 리스트 데이터가 자동으로 메모리에 생성되고 변수 a는 [1, 2, 3] 리스트가 저장된 메모리의 주소를 가리키게 됩니다.
  • id 함수 : 변수가 가리키고 있는 객체의 주소 값을 리턴하는 파이썬의 내장 함수
# 변수란?
a = [1, 2, 3]
print(id(a)) # 변수의 주소값

8-2. 리스트를 복사하고자 할 때

  • 주소값을 복사하여 담아주는 것이여서 복사한 것과 복사된 것의 변수의 주소값은 동일합니다.
  • a is b 를 통해 객체가 동일한지 확인이 가능합니다.
# 리스트를 복사하고자 할 때
a = [1, 2, 3]
b = a
print(b) # [1, 2, 3]
print(id(a)) # a의 주소값
print(id(b)) # b의 주소값 == a의 주소값
print(a is b) # True
# 리스트 복사_2
a = [1, 2, 3]
b = a # 오른쪽의 주소값을 왼쪽에 넣음
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 4, 3]

1. [:] 이용

  • 리스트 전체를 가리키는 [:] 을 사용해서 복사하는 것
  • 즉, 다른 공간이라고 생각
# [:] 이용
a = [1, 2, 3]
b = a[:]
a[1] = 4
print(a) # [1, 4, 3]
print(b) # [1, 2, 3]

2. copy 모듈 이용

  • from copy import copy
  • b = copy(a) == b = a[:]
# copy 모듈 이용하기
from copy import copy
a = [1, 2, 3]
b = copy(a)
print(b is a) # False

3. copy 함수 이용

# copy 함수 사용하기
a = [1, 2, 3]
b = a.copy()
print(b is a) # False
반응형

'Study > Python' 카테고리의 다른 글

[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 입출력  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 자료형  (0) 2025.05.22
[이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 알고리즘 성능 평가  (0) 2025.05.20
[Jump-to-Python] 파이썬의 입출력  (0) 2025.01.01
[Jump-to-Python] 제어문  (1) 2024.12.23
'Study/Python' 카테고리의 다른 글
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 자료형
  • [이것이 코딩 테스트다 with 파이썬] | 코딩 테스트를 위한 파이썬 문법 | 알고리즘 성능 평가
  • [Jump-to-Python] 파이썬의 입출력
  • [Jump-to-Python] 제어문
Jio_ni
Jio_ni
안녕하세요!! 개발 공부를 하고 있는 뽀시래기 강지현입니다!!
  • Jio_ni
    지현이의 개발 블로그
    Jio_ni
  • 전체
    오늘
    어제
    • 분류 전체보기 (202)
      • LG AI (4)
      • About (0)
      • ELITE HACKER bootcamp (12)
        • Pre.web (12)
        • Main.web (0)
      • Study (31)
        • Python (13)
        • C언어 (0)
        • Java (0)
        • HTML (8)
        • CSS (0)
        • Linux (0)
        • Web hacking (0)
        • git (4)
        • 혼공학습단 (1)
        • 유니티 (1)
        • 코딩 자율학습단 (4)
      • Project (0)
      • 코딩테스트 (153)
        • CodeUp (76)
        • 프로그래머스 (20)
        • 백준 (47)
        • SWEA (10)
      • 자격증 (1)
      • Book (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ADsP 자격증 합격 후기
    CodeUp
    Python
    전공자
    ADsP 벼락치기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Jio_ni
[Jump-to-Python] 자료형
상단으로

티스토리툴바