[Python] List, Tuple, Dictionary, Set

김가람휘·2022년 1월 28일
1

Python

목록 보기
2/14
  • 리스트(List) : 순서대로 정리된 항목들을 담는 자료구조
  • 튜플(Tuple) : 리스트와 비슷하지만 수정이 불가능하여 비정적인 객체를 담는데 사용
  • 딕셔너리(Dictionary) : key와 value로 구성되는 자료구조
  • 집합(Set) : 중복을 허용하지 않으며, 순서가 없는 자료구조

리스트(List)

1. 기본 사용법

리스트는 대괄호([])로 감싸주고 각 요소는 쉼표(,)로 구분해 준다.

list1 = [1, 2, 3, 4, 5]
list2 = ['a', 'b', 'c', 'd']
list3 = [1, 2, 'a', 'b']
list4 = [1, 2, ['a', 'b']]  # 2중 리스트

print(list4[1])
print(list4[-1])
print(list4[2][0])

출력 결과:

2
['a', 'b']
a

2. 리스트 슬라이싱(Slicing)

a = [1, 2, 3, 4, 5]
print(a[0:3])
print(a[:2])
print(a[2:])

출력 결과:

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

3. 리스트 반복, 수정, 추가, 삭제

리스트 내에 특정 요소를 수정할 수 있으며, del 키워드를 사용하여 요소 삭제도 가능하다.
* 연산자를 사용하면 리스트를 반복하여 출력하는 것도 가능하다. 요소를 추가할 때는 append를 사용한다.

a = ['a', 'b', 'c']
a[0] = 'A' # 리스트 수정
print("리스트 변경 :", a)
del a[1] # 리스트 삭제
print("리스트 삭제 :", a)
print("리스트 반복 :", a*3) # 리스트 반복
a.append('d') # 리스트 추가
print("리스트 추가 :", a)

출력 결과:

리스트 변경: ['A', 'b', 'c']
리스트 삭제: ['A', 'c']
리스트 반복: ['A', 'c', 'A', 'c', 'A', 'c']
리스트 추가: ['A', 'c', 'd']

4. 리스트 관련 함수

  • append(a) : 리스트에 요소 a 추가
  • sort() : 리스트를 순서대로 정렬
  • reverse() : 리스트를 역순으로 순서 뒤집기
  • index(x) : x위치의 값 반환
  • insert(a, b) : a번째 위치에 b삽입
  • remove(a) : 리스트에서 첫번째로 나오는 a를 삭제
  • pop() : 맨 마지막 요소를 반환하고 삭제
  • count(a) : 리스트 내의 a갯수 반환

2. 튜플(Tuple)

튜플은 리스트와 비슷하지만 다른 점이 몇가지 있다.
우선, 튜플은 대괄호([])가 아닌 소괄호(())를 사용한다.
리스트와의 가장 큰 차이점은 튜플의 경우 요소를 변경시킬 수 없다.

tuple1 = (1, 2, 3)
tuple2 = 1, 2, 3 # 소괄호를 사용하지 않아도 튜플이 된다.
tuple3 = ('a', 'b', (1, 2, 3))

리스트와 마찬가지로 인덱싱과 슬라이싱, *는 똑같이 사용가능하다.

3. 딕셔너리(Dictionary)

딕셔너리는 key와 value로 구성된다.
딕셔너리의 경우 중괄호({})를 사용하며 key:value 형태를 가진다.
주의할 점은 key는 중복되지 않도록 해야한다.

1. 기본 사용법

dic1 = {'name':'park', 'birth':'19990101'}
dic2 = {'num':[1, 2, 3, 4]}

name과 birth는 key이고 park, 19990101은 value이다.
value에는 리스트를 삽입할 수도 있다.

dic1 = {'name':'park', 'birth':'19990101'}
print(dic1['name'])
print(dic1['birth'])

딕셔너리는 key를 사용하여 value의 값을 출력할 수 있다.
출력 결과:

park
19990101

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

dic1 = {'name':'park', 'birth':'19990101'}
dic1['add'] = 'Seoul'
print("딕셔너리 추가 : ", dic1)

del dic1['name']
print("딕셔너리 삭제 : ", dic1)

출력 결과:

딕셔너리 추가 : {'name':'park', 'birth':'19990101', 'add':'Seoul'}
딕셔너리 삭제 : {'birth':'19990101', 'add':'Seoul'}

3. 딕셔너리 관련 함수

  • keys() : 딕셔너리의 key만 모아서 반환
  • values() : 딕셔너리의 value만 모아서 반환
  • items() : key, value 쌍을 반환
  • clear() : key:value 모두 지우기
  • get(x) : 키가 x인 value를 반환
  • x in dic : 딕셔너리 dic 안에 키가 x인 것이 존재하면 True 반환 아니면 False 반환

4. 집합(Set)

set은 소괄호(())를 사용하여 만든다.
중복을 허용하지 않고 순서가 없기 때문에 집합을 print를 사용하여 출력하게되면 기존의 자료구조와는 다르게 출력된다.
이러한 set의 속성으로 인해 중복 제거를 위해 사용되기도 한다.

1. 기본 사용법

set1 = set([1, 2, 3])
set2 = set("Hello")
print(set1)
print(set2)

출력 결과:

{1, 2, 3}
{'e', 'o', 'l', 'H'}

2. 집합 활용하기(교집합, 차집합, 합집합)

  • 합집합 : | 또는 union
  • 교집합 : & 또는 intersection
  • 차집합 : - 또는 difference
set1 = set([1, 2, 3, 4])
set2 = set([2, 3, 5, 6])

print("합집합 : ", set1|set2)
print("합집합 : ", set1.union(set2))

print("교집합 : ", set1&set2)
print("교집합 : ", set1.intersection(set2))

print("차집합 : ", set1 - set2)
print("차집합 : ", set1.difference(set2))

출력 결과:

합집합 : {1, 2, 3, 4, 5, 6}
합집합 : {1, 2, 3, 4, 5, 6}
교집합 : {2, 3}
교집합 : {2, 3}
차집합 : {1, 4}
차집합 : {1, 4}

3. 집합 관련 함수

  • add(x) : 값 x 1개 추가
  • update(x) : 여러 개의 값을 추가 할때 사용(x는 리스트)
  • remove(x) : x요소를 제거

0개의 댓글