[Python] 리스트, 튜플, 딕셔너리, 불 자료형

Kook Han·2020년 5월 31일
0

Python

목록 보기
8/13

1. 리스트 자료형

파이썬에서 리스트를 만들 때에는 리스트이름 = [요소1, 요소2, ….] 와 같은 식으로 하면 지정 가능. 비어있는 리스트도 (a = [] or a=list()) 만들 수 있고, 리스트 안에 리스트도 포함 가능(a=[1,2,[3,4]])

앞서 배운 인덱싱과 슬라이싱 기능도 사용 가능.
예시)

A=[1,2,3]
A[0] -> 1
A=[’1,2,3,[‘a’,’b’,’c’]]
A[-1] # [‘a’,’b’,’c’]
A[-1][a] # ‘a’ 인덱싱을 사용해 리스트 안의 리스트를 불러올 때에는 두번째 대괄호를 사용

슬라이싱도 마찬가지로 아래와 같이 사용 가능

A = [1,2,3,4,5]
A[0:2] # [1,2]

리스트는 더할 수도 있음.
예시)

A=[1,2,3]
B=[4,5,6]
A+B # [1,2,3,4,5,6]
  • 를 이용해 리스트를 반복시킬 수도 있음
    예시)
A=[1,2,3]
A*3 # [1,2,3,1,2,3,1,2,3]

Len을 사용해 리스트의 길이를 구할 수도 있음
예시)

A=[1,2,3]
Len(a) # 3

각각 정수와 숫자로 이루어진 리스트는 연산이 불가하나, 숫자 리스트를 str()를 통해 문자로 만들어주면 연산가능
예시)

A=[1,2,3]
Str(a[2])+”hi” # ‘3hi’

리스트 값을 수정 or 삭제할 수도 있음.
예시)

A = [1,2,3]
A[2] = 4
A # [1,2,4]

Del을 사용해 리스트 요소를 삭제할 수도 있음
예시)

A=[1,2,3]
Del A[1]
A # [1,3]
A=[1,2,3,4,5]
Del A[2:]
A # [1,2]

리스트에 요소를 추가할 때에는 append를 사용
예시)

A=[1,2,3]
A.append(4)
A # [1,2,3,4]

리스트 요소들을 알파벳, 작은 숫자 순서로 정리하려면 sort를 사용.
예시)

A = [1,4,3,2]
a.sort()
a # [1,2,3,4]

reverse를 사용하면 리스트를 역순으로 뒤집을 수 있음.
예시)

a=[‘a’,’b’,’c’]
a.reverse()
a # [‘c’,’b’,’a’]

리스트 안의 특정 문자 위치를 반환하려면 index를 사용
예시)

A=[1,2,3]
A.index(3) # 2
# 3은 index 2에 위치한다는 뜻

Insert를 사용해서 리스트에 요소 삽입 할 수 있음. 리스트명.insert(추가할 위치, 추가할 문자) 형식으로 입력하면 됨.
예시)

a=[1,2,3]
a.insert(0,4) # [4,1,2,3]
a.insert(3.5) # [4,1,2,5,3]

remove를 사용하면 리스트 요소를 삭제할 수 있음.
예시)

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

# remove를 쓰면 첫번째로 나온 문자만 지워짐

pop을 쓰면 리스트의 요소를 보여준 후, 그 요소를 삭제함. Pop()은 마지막 요소를 보여주고 삭제하며, () 안에 인덱스를 넣으면 해당 인덱스의 문자를 지우고 삭제함
예시)

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

리스트에 포함된 요소를 세려면 count를 사용하면 됨
예시)

A = [1,2,3,1]
A.count(1) # 2

Extend를 사용하면 리스트에 다른 리스트를 더해 확장 가능. 단 extend()의 괄호에는 리스트만 올 수 있음.
예시)

a=[1,2,3]
a.extend([4,5])
a # [1,2,3,4,5]

2. 튜플 자료형

튜플은 리스트와 거의 비슷하지만 ()를 활용한다는 점, 튜플 내의 값은 변경 불가능 하다는 점이 다름. 괄호는 생략 가능하며, 한 개의 값만을 가지는 튜플은 a=(1,)와 같이 꼭 값 뒤에 ,를 붙여야 됨. 프로그래밍 할 때 값이 변하면 안되는 경우에는 꼭 튜플을 사용할 것.

값을 변경하는 것은 안되지만, 슬라이싱, 연산, 길이 구하기 등은 리스트와 동일한 방법으로 가능함.

3. 딕셔너리 자료형

Key와 Value로 구성된 값들의 모음을 딕셔너리라고 부름. 형태는 {key1:value1, key2:value2, …} 와 같음.
예시)

Dic = {‘name’:’pey’, ‘phone’:’0119993323’}
A = {‘a’:[1,2,3]} 와 같이 value 값에 리스트를 넣을 수도 있음.

딕셔너리에는 key와 value 쌍을 추가할 수 있음.
예시)

A={1:’a’}
A[2]=’b’
A # {1:’a’,2:’b’}
A[‘name’] =’pey’
A # {1:’a’,2:’b’,’name’:’pey’}

Del을 사용해 딕셔너리 요소를 삭제할 수도 있음
예시)

Del a[1]
A # {2:’b’,’name’:’pey’}

딕셔너리는 키값만 알고 있으면 value를 불러올 수 있음
예시)

A = {2:’b’,’name’:’pey’}
A[‘name’] # ‘pey

딕셔너리는 이렇게 키값으로 value를 불러오는 기능이 있는 대신 인덱싱은 사용할 수 없음. 또한 중복되는 키값을 설정하면 처음 것 외에는 무시되므로 중복되지 않게 설정하는 것이 중요.

딕셔너리의 Key만 불러올 수 있는 함수가 있음.
예시)

A = {2:’b’,’name’:’pey’}
A.keys() # dict_keys([2, ‘name’])

이렇게 반환된 dict_keys는 아래와 같이 list로 변환해서 list에서 사용가능했던 append, insert, pop 등을 활용할 수 있음.

예시)

List(A.keys()) # [‘2’,’name’]

Items를 쓰면 키값과 value 값을 동시에 불러올 수 있음
예시)

A.items() # dict_item([(2:’b’),(’name’:’pey’)])

Clear를 사용하면 dictionary 의 키와 value를 전부 지울 수 있음
예시)

A.clear()
A # {}

Get을 쓰면 해당 key값에 해당되는 value를 구할 수 있음
예시)

A = {‘name’:’pey’,’phone’:’0119993323’}
A.get(‘name’) # ‘pey’

a.get()와 a.[]은 같은 값을 돌려주지만, 차이점은 없는 키값을 요청하면 get은 none을 돌려주고 []는 에러가 뜬다는 점임

get을 사용할 때 없는 키값을 찾는 경우 none 대신 특정값을 돌려주게 할 수 있음.
예시)

A = {‘name’:’pey’,’phone’:’0119993323’}
A.get(‘gender’, ‘bar’) # ‘bar’  

gender는 없으므로 bar가 대신 출력됨

해당 값이 딕셔너리 안에 존재하는지 조사하려면 in을 사용하면 됨

A = {‘name’:’pey’,’phone’:’0119993323’}
‘name’ in A # True
‘email’ in A # False

2-6 집합 자료형
Set을 사용하면 집합을 만들 수 있음. Set은 중복을 허용하지 않고 요소 간에 순서가 정의되지 읺음.
예시)

S1 = set([1,2,3])
S1 # {1,2,3}
S2 = set(“Hello”)
S2 # {‘e’,’h’,’l’,’o’}

Set은 교집합, 합집합을 구하는데 유용하게 쓰임. 교집합은 & 혹은 intersection을 이용해서 구할 수 있음.
예시)

S1 = set([1,2,3,4,5,6])
S2 = set([4,5,6,7,8,9])
S1 & S2 # {4,5,6}
S1.intersection(S2) # {4,5,6}
S2.intersection(S1) # {4,5,6}

합집합은 union을 사용해서 구할 수 있음.
예시)

S1.union(S2) # {1,2,3,4,5,6,7,8,9}

차집합도 구할 수 있는데, - 혹은 difference를 통해서 구할 수 있음.
예시)

S1 – S2 # {1,2,3}
S2 – S1 # {8,9,7}
S1.difference(S2) # {1,2,3}
S2.difference(S1) # {8,9,7}

집합에 add를 사용하면 값을 추가할 수 있음.

예시)

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

값을 여러 개 추가할 때에는 update를 사용함

예시)

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

특정 값을 제거하고 싶을 때에는 remove를 사용해서 아래와 같이 하면 됨

예시)

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

4. 불 자료형

True, false를 나타내는 자료형을 불 자료형이라고 부름. 변수에 true인지, false인지 지정할 수 있음.

예시)

A=True
B=False
Type(A) # <class’bool’>
Type(B) # <class’bool’>

불 형식은 데이터를 비교할 때 도출될 수도 있음.

예시)

1==1 # true
2>1 # true
1>2 # false

각 자료형에도 true와 false가 있음. 보통 괄호나 따옴표 안에 아무 데이터도 없으면 false가 뜸.

예시)

문자열 : “” # false
리스트 : [] # false
튜플 : () # false
딕셔너리 : {} # false
숫자형 : 0 이 아닌 숫자 # true, () # false
None # false

예시)

a=[1,2,3,4]
While a: # a가 참인 동안
a.pop() # 4,3,2,1 #a 안의 숫자들을 하나씩 꺼내라
if []:
print(“true”)
else:
print(“false”) # false

bool을 사용하면 해당 자료형이 참인지, 거짓인지 알 수 있음.

예시)

bool([1,2,3]) #true
bool([]) # false
bool(0) # false

0개의 댓글