: 여러개의 값을 저장할 수 있는 것(객체)
: 시퀀스는 데이터가 순서대로 나열된 형식을 나타낸다.
🚨 주의)순서대로 나열과 정렬(sort)은 같은 뜻이 아님!
[]
및 list()
를 통해 만들 수 있다.my_list = []
other_list = list()
list[i]
로 한다. -> [value1, value2, value3] ()
로 묶어서 표현합니다. -> (value1, value2)# (1) 리스트는 특정 원소를 변경할 수 있다.
a_list = [5, 10]
a_list[0] = '0번째'
print(my_list)
#['0번째', 10]
# (2) 튜플은 변경 불가능하다.
b_tuple = (5, 10)
b_tuple[0] = '0번째'
print(my_tuple)
#TypeError: 'tuple' object does not support item assignment
tuple1 = ('hello')
type(tuple1) #<class 'str'>
#하나의 항목으로 구성된 튜플은 값 뒤에 쉼표를 붙이면 가능
single_tuple = ('hello',)
print(type(single_tuple)) #<class 'tuple'>
: 숫자의 시퀀스를 나타내기 위해 사용된다.
range(n)
: 0부터 n-1까지 값을 가짐range(n, m)
: n부터 m-1까지 값을 가짐range(n, m, s)
: n부터 m-1까지 +s만큼 증가한다.(음수지정가능)#음수로 표현하고 싶다면?
list(range(0, -10, -1)) #0부터 -10까지 -1만큼 간격으로
#리스트에 range를 담고 싶다면?
[range(3)] #[range(0, 3)] -> 리스트가 가진 원소의 하나로 range(3)을 담겠다는 뜻
a = list(range(3))
print(a, type(a)) #[0, 1, 2] <class 'list'> -> 리스트에 range에 담긴 값을 담고싶다면 리스트로 형변환을 해줘야함!
operation | 설명 |
---|---|
x in s | containment test |
x not in s | containment test |
s1 + s2 | concatenation |
s * n | n번만큼 반복하여 더하기 |
s[i] | indexing |
s[i:j] | slicing |
s[i:j:k ] | k간격으로 slicing |
len(s) | 길이 |
min(s) | 최솟값 |
max(s) | 최댓값 |
s.count(x) | x의 개수 |
# 0(첫번째 값), 전체길이만큼
# 5씩 증가시켜서 slicing
a_list[0:len(a_list):5]
# 처음부터 끝까지 5씩 증가시켜서 slicing
sample_list[::5]
set
은 수학에서의 집합과 동일하게 처리된다. -> {value1, value2, value3}set
은 중괄호{}
를 통해 만들며, 순서가 없고 중복된 값이 없다. -> 📢알고리즘 문제풀때 중복을 걸러낼때 사용하면 좋지만 순서보장은 안됨! # set으로 중복된 값을 제거
list_a = [2, 1, 2, 3, 1, 1, 2]
list(set(list_a))
# [1, 2, 3] -> 순서보장 X
set()
을 사용해야 합니다. ({}
로 사용 불가능.) : dictionary
는 key
와 value
가 쌍으로 이뤄져있다.
{}
를 통해 만들며, dict()
로 만들 수도 있다. -> {Key1:Value1, Key2:Value2, Key3:Value3, ...}dict_a = {}
dict_b = dict()
key
는 변경 불가능(immutable)한 데이터만 가능. (immutable : string, integer, float, boolean, tuple, range)value
는 list
, dictionary
를 포함한 모든 것이 가능하다.phone = {'서울': '02', '충북': '043', '대전':'042'}
phone['충북']
#043
📢 dictionary에서 key에 대응되는 value값을 가져오기 위해서는 두가지 방법이 있다.
1. a.get() -> 존재하지 않는 키로 값을 가져오려고 할 때 None을 반환.
2. a['key'] -> 존재하지 않는 키로 값을 가져오려고 할 때 오류가 발생.
phone.items()
#dict_items([('서울', '02'), ('충북', '043'), ('대전', '042')])
🚨 주의) mutable 데이터의 복사?
#(1)
num1 = [1, 2, 3, 4]
num2 = num1
num2[0] = 100
print(num1) #[100, 2, 3, 4]
print(num2) #[100, 2, 3, 4]
#(2)새로운 리스트를 만들어서 복사한다면?
num1 = [1, 2, 3, 4]
num2 = list(num1)
num2[0] = 100
print(num1) #[1, 2, 3, 4]
print(num2) #[100, 2, 3, 4]