본문 바로가기
  • hello world
Language/Python

[Python] 리스트(list) · 튜플(tuple) · range함수 · 슬라이스(slice) · 세트(set) · 딕셔너리(dictionary)

by JJoajjoa 2023. 8. 16.

 

 

# 리스트 list 와 튜플 tuple

구 분 리스트(list) 튜플(tuple)
특 징 - 하나의 변수에 여러 값을 할당하는 자료형
- [대괄호]를 사용하여 생성
- 다양한 형태를 넣을 수 있음
- 데이터는 콤마로 구분
- 수정, 추가 가능
- 하나의 변수에 여러 값을 할당하는 자료형
- (소괄호)를 사용하여 생성
- 다양한 형태를 넣을 수 있음
- 데이터는 콤마로 구분
- 수정, 추가 불가능

 

 

 

# 리스트 함수(예시)

x = ["A", "B", "C", "B"]

코드 의미 x =
x.append("a") 리스트에서 항목 하나를 맨 마지막에 추가 ["A", "B", "C", "B", "a"]
x.extend(["a", "b"]) 리스트에서 항목 여러개를 맨 마지막에 추가 ['A', 'B', 'C', 'B', 'a', 'a', 'b']
x.insert(1, "a") 리스트에서 특정위치에 항목 삽입 ['A', 'a', 'B', 'C', 'B', 'a', 'a', 'b']
x.remove("B") 입력값과 첫번째로 일치하는 항목을 리스트에서 삭제 ['A', 'a', 'C', 'B', 'a', 'a', 'b']
x.pop() 리스트 마지막 항목을 제거 후 반환 ['A', 'a', 'C', 'B', 'a', 'a']
x.index("B") 리스트에서 인자와 일치하는 첫번째 항목의 인덱스번호 반환 3
x.count("a") 리스트에서 인자와 일치하는 항목의 갯수 반환 3
x.sort() 리스트 항목을 순방향으로 정렬 = sort(reverse=False) ['A', 'B', 'C', 'a', 'a', 'a']
x.reverse() 리스트 항목을 끝부터 역순으로 정렬 ['a', 'a', 'a', 'C', 'B', 'A']

 

x = ["A", "B", "C", "B"]

print(x)
# ['A', 'B', 'C', 'B']
x.append("a")
print(x)
# ['A', 'B', 'C', 'B', 'a']
x.extend(["a", "b"])
print(x)
# ['A', 'B', 'C', 'B', 'a', 'a', 'b']
x.insert(1, "a")
print(x)
# ['A', 'a', 'B', 'C', 'B', 'a', 'a', 'b']
x.remove("B")
print(x)
# ['A', 'a', 'C', 'B', 'a', 'a', 'b']
x.pop()
print(x)
# ['A', 'a', 'C', 'B', 'a', 'a']
print(x.index("B"))
# 3
print(x.count("a"))
# 3
x.sort()
print(x)
# ['A', 'B', 'C', 'a', 'a', 'a']
x.reverse()
print(x)
# ['a', 'a', 'a', 'C', 'B', 'A']

 

 

 

# Range함수

- 연속된 숫자를 생성하는 함수

### List

num = list(range(10))
print(num)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

num = list(range(1, 11))
print(num)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

num = list(range(-10, 10, 2))
print(num)
# [-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]

num = list(range(5, 0, -1))
print(num)
# [5, 4, 3, 2, 1]



### Tuple

num = tuple(range(10))
print(num)
# (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

num = tuple(range(5, 0, -1))
print(num)
# (5, 4, 3, 2, 1)

 

 

 

# 리스트와 튜플의 기능들

### 특정값이 있는지 확인 : in ###
a = [1, 2, 3, 4, 5]
print(1 in a)
# True
print(8 in a)
# False


### 반복 : * ###
a = [1, 2, 3, 4, 5]
print(a*3)
# [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]


### 연결 : + ###
a = [1, 2, 3, 4, 5]
b = [6, 7, 8]
print(a+b)
# [1, 2, 3, 4, 5, 6, 7, 8]


### 갯수 : len() ###
a = [1, 2, 3, 4, 5]
print(len(a))
# 5

 

 

 

# 인덱스 접근

### 기본 접근 및 변경 ###
a = [1, 2, 3, 4, 5]
print(a[2])
# 3
print(a[-1])
# 5
a[3] = 8
print(a)
# [1, 2, 3, 8, 5]


### 슬라이스 ###
a = [1, 2, 3, 4, 5]
print(a[0:4])
# [1, 2, 3, 4]
print(a[1:-2])
# [2, 3]


### 슬라이스 할당 및 삭제 ###
a = [1, 2, 3, 4, 5]
a[1:4] = ["a", "b", "c"]
print(a)
# [1, 'a', 'b', 'c', 5]
a[1:4] = ["d", "e"]
print(a)
# [1, 'd', 'e', 5]
del a[1:3]
print(a)
# [1, 5]


### 끝 인덱스 가져오기 ###
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(a[:3])
# [1, 2, 3]
print(a[3:])
# [4, 5, 6, 7, 8, 9, 10]

 

 

 


 

 

# 세트 set

 

세트 = { 값1, 값2, 값3, 값4 }

 

수학의 집합 개념을 파이썬에서 이용할 수 있도록 만든 데이터 타입

- 데이터의 순서가 없음

- 데이터를 중복해서 쓸 수 없음

- 리스트에서 사용했던 메서드 이외에도 교집합, 합집합, 차집합을 구하는 메서드 사용 가능

set = {1, 2, 3, 3}
print(set)
# {1, 2, 3}

 

메서드 기호
교집합(intersection) A  B | A.intersection(B)
합집합(union) A  B & A.union(B)
차집합(difference) A - B - A.difference(B)
대칭차집합(symmetric_difference) A ^ B ^ A.symmetric_difference(B)
부분집합(issubset)   <= A.issubset(B)
상위집합(issuperset)   >= A.issuperset(B)
### 합집합 ###
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b)
print(set.union(a, b))
# {1, 2, 3, 4, 5}

### 교집합 ###
a = {1, 2, 3}
b = {3, 4, 5}
print(a & b)
print(set.intersection(a, b))
# {3}

### 차집합 ###
a = {1, 2, 3}
b = {3, 4, 5}
print(a - b)
print(set.difference(a, b))
# {1, 2}
print(b - a)
print(set.difference(b, a))
# {4, 5}

### 대칭차집합 ###
a = {1, 2, 3}
b = {3, 4, 5}
print(a ^ b)
print(set.symmetric_difference(a, b))
# {1, 2, 4, 5}

### 부분집합 ###
a = {1, 2, 3, 4}
print(a <= {1, 2, 3, 4, 5})
# True
print(a.issubset({1, 2, 3, 4, 5}))
# True
print(a <= {1, 2, 3})
# False
print(a.issubset({1, 2, 3}))
# False

### 상위집합 ###
a = {1, 2, 3, 4}
print(a >= {1, 2, 3})
# True
print(a.issuperset({1, 2, 3}))
# True
print(a >= {1, 2, 3, 4, 5})
# False
print(a.issuperset({1, 2, 3, 4, 5}))
# False

 

 

# 세트의 기능들

### 겹치는 요소 확인 ###
a = {1, 2, 3, 4}
print(a.isdisjoint({5, 6, 7, 8}))
# True (겹치는 요소 X)
print(a.isdisjoint({2, 3, 4, 5}))
# False (겹치는 요소 O)

### 세트 요소 추가 및 삭제 ###
a = {1, 2, 3, 4}
a.add(8)
print(a)
# {1, 2, 3, 4, 8}
a = {1, 2, 3, 4}
a.remove(3)
print(a)
# {1, 2, 4}
a.discard(2)
print(a)
# {1, 4}

 

 

 


 

 

# 딕셔너리 dictionary

 

딕셔너리 = { 키1 : 값1, 키2 : 값2 }

딕셔너리 = dic( 키1 = 값1, 키2 = 값2 )

 

- 키와 값이 항상 쌍으로 구성됨 = 키를 안다면 그에 해당하는 값을 쉽게 알 수 있음

- 인덱스 대신 키를 이용하여 값을 다룸

 

메서드 설명
keys() 딕셔너리에서 키 전체를 리스트 형태로 반환 dict.keys()
values() 딕셔너리에서 값 전체를 리스트 형태로 반환 dict.values()
items() 딕셔너리에서 키와 값의 쌍을 (키, 값)처럼 튜플 형태로 반환 dict.items()
setdefault(키, 값) 키 - 값 쌍 추가 dict.setdefault("key", 77)
update(dict_data2) 딕셔너리에 딕셔너리('dict2') 추가 dict.update(dict2)
update({키 : 값}) 키 - 값 수정 dict.update({"key" : 77})
clear() 딕셔너리의 모든 항목 삭제 dict.clear()
pop(키, 기본값) 키로 딕셔너리 항목 삭제 후 값 반환 dict.pop("key", 0)