파이썬 기본 _ 자료형 : 딕셔너리, 집합, 불 그리고 변수

2025. 2. 9. 18:40LG U+ why not SW 5/python

파이썬

 

 

 

 

 

자료형

 

 

 

1. 딕셔너리

 

사전과 같이 각 요소의 key값과 value값이 상응하는 자료형.

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

dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}

 

 

1) 요소 추가 : 딕셔너리이름[key값] = 'value값'

: 딕셔너리이름이라는 딕셔너리 안에 key값:value값을 추가.

 

a = {1: 'a'}
a[3] = 'b'
a
>>> {1: 'a', 3: 'b'}

 

 

2) 요소 삭제 : del 딕셔너리이름[key값]

: 딕셔너리이름이라는 딕셔너리 안의 key값과 그에 해당하는 value값을 한쌍으로 삭제.

 

a = {2: 'b', 'name': 'pey', 3: [1, 2, 3]}

del a[1]
a
>>>  {2: 'b', 3: [1, 2, 3]}

 

 

1-2. 딕셔너리 함수

 

1) key 리스트 생성 : .key()

: 딕셔너리의 key 값만 dict_keys([]) 형태로 하나의 리스트 생성.

: list(.key())로 입력 시, [key1, key2, key3, ..., n] 형태로 생성.

 

 

2) value 리스트 생성 : .values()

: 딕셔너리의 vlaue 값만 dict_values([]) 형태로 하나의 리스트 생성.

: list(.values())로 입력 시, [values1, values2, values3, ..., n] 형태로 생성.

 

 

3) key와 value 한꺼번에 리스트 생성 : .items()

: 딕셔너리의 key와 value를 한쌍의 튜플로, dict_items([]) 형태로 하나의 리스트 생성.

 

a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}

a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])

 

 

4) 딕셔너리 내부 해당 key 값 유무 확인 : in

 

a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
'name' in a
>>> True
'email' in a
>>> False

 

 

 

2. 집합 : .set()

 

중복을 허용하지 않음.

순서가 없으므로(Unordered), 인덱싱할 수 없음.

인덱싱하기 위해 list(.set()) 혹은 tuple(.set()) 형태로 변형해주어야 함.

중복을 허용하지 않는 특징 때문에 데이터 중복을 제거하기 위한 필터로 사용 가능.

교집합, 차집합, 합집합 구할 때 용이.

 

s1 = set([1, 2, 3])
s1
>>> {1, 2, 3}


s2 = set("Hello")
s2
>>>  {'e', 'H', 'l', 'o'}

 

 

1) 교집합, 합집합, 차집합 구하기

 

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

 

 

1-1) 교집합 : &  /  .intersection()

 

s1 & s2
>>> {4, 5, 6}

 

s1.intersection(s2)
>>> {4, 5, 6}

 

 

1-2) 합집합 : |  /  .union()

 

s1 | s2
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

s1.union(s2)
>>> {1, 2, 3, 4, 5, 6, 7, 8, 9}

 

 

1-3) 차집합 : -  /  .difference()

 

s1 - s2
>>> {1, 2, 3}
s2 - s1
>>> {8, 9, 7}

 

s1.difference(s2)
>>> {1, 2, 3}
s2.difference(s1)
>>> {8, 9, 7}

 

 

2-2. 집합 함수

 

1) 1개의 값 추가 : .add()

: 중복된 값은 오류

 

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

 

 

2) 2개 이상의 값 추가 : .update()

: 중복된 값은 고유한 값만 남김

 

s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
>>> {1, 2, 3, 4, 5, 6}

 

 

3) 특정 값 제거 : .remove()

 

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

 

 

 

3. 불

 

참True과 거짓False을 나타내는 자료형.

 

a = True
b = False

 

type(a)
>>> <class 'bool'>
type(b)
>>> <class 'bool'>

 

 

1) 불 연산 : bool()

: 일반적으로 값이 있다면 True, 없다면 False

 

bool('python')
>>> True

 

bool('')
>>> False

 

bool([1, 2, 3])
>>> True
bool([])
>>> False
bool(0)
>>> False
bool(3)
>>> True

 

 

 

4.  변수 : 변수_이름 = 변수에_저장할_값

 

a = 1
b = "python"
c = [1, 2, 3]

 

 

1) 변수의 리스트 복사

 

a = [1, 2, 3]
b = a

: b는 a와 같은 주소를 사용 즉, 값이 동일하다는 의미.

 

a[1] = 4
a
>>> [1, 4, 3]
b
>>> [1, 4, 3]

 

 

1-1) [:] 로 복사

 

a = [1, 2, 3]
b = a[:]
a[1] = 4
a
>>> [1, 4, 3]
b
>>> [1, 2, 3]

: a 전체를 리스트로 복사해 b라는 독립적인 리스트 생성 즉, 주소가 동일하지 않음.

 

1-2) .copy() 함수로 복사

 

a = [1, 2, 3]
b = a.copy()


b is a

>>> False

b == a

>>> False

 

 

2) 변수 만들기

 

2-1) 튜플을 이용해 만들기

 

a, b = 'python', 'life'

>>> a = 'python'

>>> b = 'life'

 

a, b = ('python', 'life')

>>> a = 'python'

>>> b = 'life'

 

(a, b) = 'python', 'life'

>>> a = 'python'

>>> b = 'life'

 

 

2-2) 리스트를 이용해 만들기

 

[a, b] = ['python', 'life']

>>> a = 'python'

>>> b = 'life'

 

2-3) 기타 변수 대입

 

a = b = 'python'

>>> a = 'python'

>>> b = 'python'

 

a = 3
b = 5

a
>>> 5
b
>>> 3
a, b = b, a
a
>>> 5
b
>>> 3