mylist = []
mylist[]
| 분류 | 타입 | 특징 | 예시 |
|---|---|---|---|
| 시퀀스(sequence) | 리스트(list) | 순서가 있고, 가변(mutable) | [1, 2, 3] |
| 시퀀스(sequence) | 튜플(tuple) | 순서가 있고, 불변(immutable) | (1, 2, 3) |
| 세트(set) | 세트(set) | 순서가 없고, 중복을 허용하지 않음 | {1, 2, 3} |
| 맵(map) | 딕셔너리(dictionary) | 순서가 없고, key/value 쌍으로 이루어짐 | {‘a’: 1, ‘b’: 2, ‘c’: 3} |
메서드(method): 객체(object)가 포함하는 함수 혹은 기능입니다. 함수에 대한 내용은 추후에 다룹니다.
[] 형태로 표현합니다.
빈 리스트를 생성합니다.
mylist = []
mylist[]
mylist = list()
mylist[]
리스트를 생성하면서 값을 포함합니다.
mylist = [1, 3, 2, 4, 5]
mylist[1, 3, 2, 4, 5]
a = []a = [1, 2, 3]
a[1, 2, 3]
a = [1, 'hello', 3, 3.14, True]
a[1, 'hello', 3, 3.14, True]
리스트 안에 리스트로 포함할 수 있습니다.
a = [1, 'hello', 3, 3.14, [6, 7, '8']]
a[1, 'hello', 3, 3.14, [6, 7, '8']]
빈 리스트를 생성합니다.
mylist = []
mylist[]
append() 는 값을 맨 뒤에 추가 합니다.
mylist.append(1)
mylist[1]
중복된 값을 추가할 수 있으며, 순서가 유지됩니다.
mylist.append(7)
mylist.append(7)
mylist.append(7)
mylist.append(3)
mylist.append(5)
mylist.append(2)
mylist[1, 7, 7, 7, 3, 5, 2]
mylist = [1, 6, 3, 2, 7, 5, 4]
mylist.sort()mylist[1, 2, 3, 4, 5, 6, 7]
역정렬(reverse order)도 가능합니다. (reverse=True를 지정합니다.)
mylist = [1, 6, 3, 2, 7, 5, 4]
mylist.sort(reverse=True)mylist[7, 6, 5, 4, 3, 2, 1]
mylist = [1, 6, 3, 2, 7, 5, 4]
sorted(mylist)[1, 2, 3, 4, 5, 6, 7]
mylist[1, 6, 3, 2, 7, 5, 4]
마찬가지로, reverse=True를 지정하여 역정렬할 수 있습니다.
mylist = [1, 6, 3, 2, 7, 5, 4]
sorted(mylist, reverse=True)[7, 6, 5, 4, 3, 2, 1]
mylist.reverse()mylist[4, 5, 7, 2, 3, 6, 1]
mylist = [1, 6, 3, 2, 7, 5, 4]
len(mylist)7
지정한 index에 값 추가
mylist.insert(1, 100)mylist[1, 100, 6, 3, 2, 7, 5, 4]
리스트에서 첫 번째 나오는 해당 값 삭제
mylist.remove(7)mylist[1, 100, 6, 3, 2, 5, 4]
x번째 요소를 돌려주고 해당 요소는 삭제
mylist.pop(1)100
mylist = [100, 200, 300, 400, 500]
del mylist[1]
print(mylist)
del mylist[3]
print(mylist)[100, 300, 400, 500]
[100, 300, 400]
a = [1, 1, 1, 1, 1, 2, 2, 3]a.count(1)5
a.count(2)2
a.count(5)0
a = [1, 2, 3]a.extend([4, 5])a[1, 2, 3, 4, 5]
+ 연산자는 extend()와 동일한 기능을 수행합니다.
a = [1, 2, 3]
a + [4, 5][1, 2, 3, 4, 5]
mylist = [1, 2, 3, 4]인덱스는 0번 부터 시작 합니다.
mylist[0]1
mylist[3]4
mylist[4]--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-46-88b11041aa4f> in <module> ----> 1 mylist[4] IndexError: list index out of range
파이썬은 음수 인덱싱을 지원합니다.
mylist[-1]4
mylist[-3]2
mylist[-5]--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-49-7f152f66d2d3> in <module> ----> 1 mylist[-5] IndexError: list index out of range
mylist = [1, 2, 3, 4, 5]
mylist[1, 2, 3, 4, 5]
mylist[0]1
mylist[0] = 100mylist[100, 2, 3, 4, 5]
mylist[-1] = 300mylist[100, 2, 3, 4, 300]
중첩된 리스트에 대한 리스트는 중첩 인덱싱으로 접근합니다. 값을 변경하는 것도 가능합니다.
mylist = [['가', '나', '다'], [4, 5, 6], 7, 8, 9]mylist[['가', '나', '다'], [4, 5, 6], 7, 8, 9]
1 번째 리스트 요소를 가져옵니다.
mylist[1][4, 5, 6]
1번째 리스트의 요소 중 1번째 요소를 가져오기 위해서는 중첩 인덱싱으로 접근합니다.
mylist[1][1]5
mylist[1][1] = 99mylist[['가', '나', '다'], [4, 99, 6], 7, 8, 9]
mylist = [100, 200, 300, 400, 500][:]을 활용하여 전체를 추출할 수 있습니다.
mylist[:][100, 200, 300, 400, 500]
[start:]는 시작 index 부터 끝까지 추출합니다.
mylist[2:][300, 400, 500]
mylist[-3:][300, 400, 500]
[:end]는 처음부터 end 전까지 추출합니다.
mylist[:3][100, 200, 300]
[start:end]는 start부터 end 전까지 추출합니다.
mylist[1:3][200, 300]
mylist[-3: -1][300, 400]
list[start:stop:step]
mylist = [100, 200, 300, 400, 500]2칸씩 건너뛰기
mylist[::2][100, 300, 500]
역순 출력
mylist[::-1][500, 400, 300, 200, 100]
역순 그리고 2칸씩 건너뛰기
mylist[::-2][500, 300, 100]
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]a + b[1, 2, 3, 4, 5, 6, 7, 8]
a = ['a', 'b', 'c']
b = ['d', 'e', 'f']a + b['a', 'b', 'c', 'd', 'e', 'f']
a = ['a', 'b', 'c']
b = [1, 2, 3, 4]a * 2['a', 'b', 'c', 'a', 'b', 'c']
b * 3[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
()로 튜플을 생성할 수 있습니다.
mytuple = (1, 2, 3)
mytuple(1, 2, 3)
tuple() 로 생성하는 경우
mytuple = tuple([1, 2, 3])
mytuple(1, 2, 3)
, 로 생성할 수 있습니다.
mytuple = 1, 2, 3
mytuple(1, 2, 3)
단일 요소를 생성할 때는 반드시 ,를 붙여 줍니다. - (1,)과 (1)은 다른 자료구조임을 꼭 알고 있어야 합니다.
mytuple = 1,
print(type(mytuple))
mytuple<class 'tuple'>
(1,)
mytuple = (1,)
print(type(mytuple))
mytuple<class 'tuple'>
(1,)
mytuple = (1)
print(type(mytuple))
mytuple<class 'int'>
1
튜플 언패킹(unpacking) - 튜플로 한 번에 여러 변수에 값을 한 번에 할당할 수 있습니다.
a, b, c = 1, 2, 3
print(a)
print(b)
print(c)1
2
3
mytuple = (1, 2, 3)
mytuple(1, 2, 3)
요소를 조회하는 것은 가능합니다.
mytuple[1]2
요소를 변경하려는 경우
mytuple[1] = 100--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-106-302beb1444a7> in <module> ----> 1 mytuple[1] = 100 TypeError: 'tuple' object does not support item assignment
요소를 삭제하려는 경우
del mytuple[1]--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-107-011fbf932d04> in <module> ----> 1 del mytuple[1] TypeError: 'tuple' object doesn't support item deletion
a = (1, 2)
b = (3, 4)a + b(1, 2, 3, 4)
a * 3(1, 2, 1, 2, 1, 2)
mytuple(1, 2, 3)
len(mytuple)3
a = [1, 2, 3, 4]a[1, 2, 3, 4]
type(a)list
b = tuple(a)b(1, 2, 3, 4)
type(b)tuple
a = (1, 2, 3, 4)a(1, 2, 3, 4)
type(a)tuple
b = list(a)b[1, 2, 3, 4]
type(b)list
리스트로 type을 변경하였기 때문에 요소의 추가 및 삭제가 가능합니다.
b.append(5)
b[1, 2, 3, 4, 5]
b.remove(2)
b[1, 3, 4, 5]
요소를 추가 및 삭제한 후 다시 tuple로 변경할 수 있습니다.
c = tuple(b)c(1, 3, 4, 5)
type(c)tuple