Python 리스트와 튜플

이도윤·2022년 11월 19일
0

시퀀스, 집합형 자료구조

분류타입특징예시
시퀀스(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}

리스트(list)
리스트는 데이터의 요소를 순차적으로 파악하는데 용이한 자료형 입니다.
리스트는 다양한 메서드(method) 혹은 함수를 지원하며 메서드를 활용하여 요소를 추가, 삭제 및 변경할 수 있습니다.


메서드(method)
객체(object)가 포함하는 함수 혹은 기능


list 규칙
list는 다양한 type의 데이터를 집합으로 가집니다.
list안에 list도 허용합니다.
list는 순서(order)의 개념이 존재합니다.


append() : 값 추가
append() 는 값을 맨 뒤에 추가 합니다.

mylist.append(1)
mylist

[1]

sort() : 정렬
요소를 순서대로 정렬합니다 (오름차순)
sort()는 내부적으로 정렬 합니다.

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]

sorted() : 정렬
요소를 순서대로 정렬합니다.
내부적으로 정렬하지 않고 정렬된 복사본을 반환합니다.
즉 원본 데이터는 정렬되지 않습니다.

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() : 역정렬

mylist.reverse()
mylist
[4, 5, 7, 2, 3, 6, 1]

remove() : 값 제거
리스트에서 첫 번째 나오는 해당 값 삭제

mylist.remove(7)
mylist
[1, 100, 6, 3, 2, 5, 4]

pop() : 요소 꺼내기
x번째 요소를 돌려주고 해당 요소는 삭제

mylist.pop(1)
100

del : 요소 삭제

mylist = [100, 200, 300, 400, 500]

del mylist[1]
print(mylist)
del mylist[3]
print(mylist)

[100, 300, 400, 500]
[100, 300, 400]

count() : 갯수 세기

a = [1, 1, 1, 1, 1, 2, 2, 3]
a.count(1)
5
a.count(2)
2

extend() : 리스트 확장

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]

슬라이싱(Slicing): 범위 추출
슬라이싱의 활용: [start:stop:step] 을 명시하여 부분을 추출할 수 있습니다.

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]

indexing 에 step 활용하기

list[start:stop:step]

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]

list 덧셈: list 확장

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']

list 곱셈: list 반복

a = ['a', 'b', 'c']
b = [1, 2, 3, 4]
a * 2
['a', 'b', 'c', 'a', 'b', 'c']

튜플(tuple)
리스트(list)는 가변(mutable)하는 객체(object)이지만, 튜플(tuple)은 불변(immutable)한 객체입니다.
가변 객체는 요소에 대한 수정, 삭제, 변경 등이 가능하지만, 불편 객체는 요소에 대한 수정, 삭제, 변경이 불가합니다.


참고
https://teddylee777.github.io/categories/python/
https://teddylee777.github.io/python/python-tutorial-02

profile
Java 백엔드 개발자

0개의 댓글