본문 바로가기
파이썬

파이썬 자료형 (2) - 리스트, 튜플, 딕셔너리, 집합, 부울

by Daisy_On 2020. 9. 22.



0. 자료형 분류

* 순차(sequence) 자료형

- 문자열, 수치 등을 관리하기 위한 자료형으로 순서 개념이 있음

- 배열 형식의 구조로 인덱스를 이용하여 데이터에 접근

- 인덱스 값은 0부터 시작하며 자료참조 및 슬라이싱 가능

- 연결이나 반복을 위해 +, * 연산자 사용 가능

- ex) 문자열(string), 리스트(list), 튜플(tuple)

 

* 비순차(non-sequence) 자료형

- 문자열, 수치 등을 관리하기 위한 자료형으로 순서 개념이 없음

- 인덱스를 이용한 접근 불가

- ex) 딕셔너리(dict), 집합(set)

 

* 가변 자료형 : 값의 변경이 가능, ex) list, dict, set

* 불변 자료형 : 값의 변경이 불가능, ex) string, tuple

 

 

1.  리스트 (List)

- 순차 자료형, 가변 자료형

- 다른 객체(객체:파이썬에서 사용되는 모든 자료형)를 포함하여 저장하는 컨테이너형 객체 (숫자형, 문자형, 숫자 문자 혼합, 리스트 등 모두 가능)

- 인덱스는 0부터, 역인덱스는 -1부터 시작

- [] 로 표현하며 각 요솟값은 쉼표로 구분

- 빈 리스트는 a=[] 또는 a=list()

- + 연산시 같은 자료형끼리 더해줘야 함.















print(a)







[1, 2, 4]

 

* 리스트 관련 함수

a=[1, 2, 3]

(>> 대화형 인터프리터)

함수 내용 예시
len 리스트 길이 구하기
3
del 리스트 요소 삭제 (인덱스로 접근)

[1, 2]
remove 리스트 요소 삭제 (값으로 접근)
[1, 3]
pop
인덱스 안쓰면 마지막 요소 돌려주고 삭제



[1, 3]
append 맨 마지막에 요소 추가 (하나만 가능)

[1, 2, 3, 4]
extend 원래 리스트에 더하기, 리스트만 가능

[1, 2, 3, 4, 5]
sort 리스트 요소 정렬 (숫자, 문자 다 가능)


[1, 2, 3]
reverse 리스트 역순으로 뒤집기

[3, 2, 1]
index
(없으면 에러)

2
remove 첫 번째로 나오는 값 삭제

[1, 2]
count 요소 개수 세기

2

 

 

2. 튜플(Tuple)

- 순차자료형, 불변자료형

- () 로 표현 및 요솟값 구분은 콤마

- 빈 튜플은 ()

- ()는 생략 가능하며 요소가 1개일 경우 끝에 반드시 콤마를 붙여야 함

- 불변이라는 것과 () 또는 생략, 1개인 경우 콤마를 붙이는 것을 제외하면 리스트와 동일함 (값 변경을 제외한 함수 사용 가능)



print(len(a))

3

 

 

3. 딕셔너리(사전, dict)

- 비순차 자료형, 가변 자료형

- 키(key)와 값(value)의 쌍으로 데이터를 저장하며 인덱스로 접근 불가, key로 접근 (value 반환)

- 이러한 대응 관계를 나타내는 자료형을 연관 배열(Associative array) 또는 해시(Hash)라고 함

- 값은 변경 가능, 키는 변경 불가능(key에 list, dict 사용 불가, tuple 사용 가능)

- 하나의 딕셔너리 객체에 중복된 키 존재 불가 (중복되면 하나를 제외한 나머지가 모두 무시됨)

- { Key1:Value1, ... } 로 표현, 콤마로 구분.

- 빈 딕셔너리는 {}










print(dict)


{'id':'Daisy', 'blog':'daisy-on.tistory.com'}

 

* 딕셔너리 관련 함수

dict = {'id': 'Daisy',  'pw': 1234}

함수 내용 예시
keys key를 dict_kyes 객체로 반환 

(참고; values, items도 같음)
리스트로 바꾸지 않더라도 반복 구문에서는 사용 가능하지만 list 내장함수는 사용 불가.

2.7버전까지는 리스트로 반환




['id', 'pw']
values value를 dict_values 객체로 반환



KeyError
items value쌍을 튜플로 묶은 값을 dict_items 객체로 반환
dict_items([('id','Daisy'),('pw',1234)])
clear 딕셔너리 객체 안의 모든 요소 삭제

{}
get




- 그냥 key로 접근하는 경우, 없는 key이면 오류 발생.





'DaisyOn'
in 해당 key가 딕셔너리 안에 존재하는지 조사 >> 'name' in dict
False
>> 'id' in dict
True

 

 

4. 집합(set)

- 비순차 자료형, 가변 자료형

- 인덱스를 이용한 접근 불가

- 중복된 값 허용하지 않음 (중복 제거를 위한 필터 역할로도 종종 사용)

- 빈 집합은 set()





print(b)

{'e', 'H', 'l', 'o'} #중복을 허용하지 않고 순서가 없기 때문에 이렇게 나옴

 

인덱싱을 지원하지 않기 때문에 인덱스로 접근하려면 리스트나 튜플로 변환 후 접근해야한다.





print(b[1])

2

 

* 교집합, 합집합, 차집합, 여집합

- 교집합 : & 또는 intersection

- 합집합 : | 또는 union

- 차집합 : - 또는 difference

- 여집합 : ^ 또는 symmetric_difference







print(s1 ^ s2)  # = s1.symmetric_difference(s2)



{1, 2, 3, 7, 8, 9}

 

* 집합 자료형 관련 함수들

s1 = set([1, 2, 3])

함수 내용 예시
add 값 1개 추가

{1, 2, 3, 4}
update 값 여러개 추가
{1, 2, 3, 4, 5}
remove 특정 값 제거
{1, 3}

 

 

5. 불(bool)

- 참(True)과 거짓(False)를 나타내는 자료형으로 첫글자는 반드시 대문자

- 자료형에도 참과 거짓이 있으며 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어있으면 False, 비어있지 않으면 True.

- 1은 True, 0은 False.

- None은 False.

- bool(값)은 True, False 반환 (ex. bool("python")=True)

참 or 거짓
"python"
"" 거짓
[1, 2, 3]
[], (), {} 거짓
1
0 거짓
None 거짓

 

while문과 함께 쓰이는 경우가 많다.



    print(a.pop())



1

위 예문의 경우, a가 빈 리스트가 될 경우 거짓이 되면서 while문을 빠져나오게 된다.

a.pop()으로 맨 마지막 요소를 하나씩 차례로 제거하다보면 빈 리스트가 되었을 때 반복문이 종료된다.

 

 

6. 변수

파이썬에서 사용하는 변수는 객체를 가리키는 것이라고도 말할 수 있으며, 객체란 자료형과 같다.

변수에 어떤 객체가 할당된 경우, 변수는 자동으로 메모리(데이터를 기억하는 공간) 주소를 가리키게 된다.

이 메모리 주소는 id 함수로 확인할 수 있다.

 

* 리스트 복사

a라는 리스트를 b에 복사한다면(b=a), a와 b의 메모리 주소는 같다.

동일한 객체를 가리키고 있는지 판단하는 명령어 is를 실행하면 True를 반환한다.



print(a is b)
True

 

여기서 a를 바꾼다면 b도 똑같이 바뀐다.

a, b 모두 같은 주소를 가리키고 있기 때문이다(id(a)=id(b))




print(a is b)


True

 

리스트를 복사할 때 다른 주소를 가리키도록 하려면 두 가지 방법이 있다.

1) [:] 사용







print(a is b)


False

2) copy 모듈 이용








print(a is b)

[1, 2, 3]
False

 

* 변수를 만드는 방법




a=b='python'

위 방법을 사용하여 두 변수의 값을 쉽게 바꿀 수 있다.





print(b)

3

 

 

7. 자료형변환

- 숫자형 자료는 숫자형 자료로 변환 가능하지만 문자형은 숫자형으로 변환 불가능

- float을 integer로 변환할 경우 소수부는 잘림

- 부울타입은 integer(1, 0)으로 변환 가능

- int(), float(), str()








print(int(c))



1

 


요약

  리스트(list) 튜플(tuple) 딕셔너리(dict) 집합(set)
순차/비순차 순차 순차 비순차 비순차
가변/불변 가변 불변
value: 가변
가변
표현 [value1, value2, ... ] 
value1, value2, ...
{key1:value1, key2:value2, ...} set(value)
접근 index index key list나 tuple로 변환 후 index 접근
중복값 허용 허용 중복 key 불가 불가
+, * 연산 가능 가능 불가 불가
비고
요소로 모든 자료형 혼합 사용 가능.

ex: (1,)

중복된 키는 나머지 무시됨.
교집합(&), 합집합(|), 차집합(-), 여집합(^)

 

 

* 참고자료

- 회사 교육자료

점프 투 파이썬

댓글