Python List(파이썬 리스트)

리스트(List)는 파이썬에서 가장 많이 사용되는 데이터 구조 중 하나이다. 리스트는 여러 개의 항목을 순서대로 담을 수 있으며, 다양한 연산과 변형을 통해 데이터를 처리할 수 있는 강력한 기능을 제공한다. 이 글에서는 파이썬의 리스트에 대해 알아보고, 이를 활용하는 방법들을 알아본다.

리스트 생성과 기본조작

리스트는 보통 관련된 값들을 모아서 하나의 값으로 취급하는 자료형이다. 대괄호([])로 항목들을 감싸고, 쉼표(,)로 구분한다. 그리고 대괄호 안에 순서대로 데이터를 넣어준다.

# 리스트명 = [요소1, 요소2, 요소3, ...]

a = []
b = [1, 2, 3]
c = ['Life', 'is', 'too', 'short']
d = [1, 2, 'Life', 'is']
e = [1, 2, ['Life', 'is']]

리스트는 a처럼 아무요소도 포함하지 않아 비어 있는 리스트([])일 수도 있고, b처럼 숫자를 요소로, c처럼 문자열을 요소로 갖을 수 있다. 또한 d 처럼 여러 자료형을 갖을 수도 있고, e처럼 리스트 자체를 요소값으로 가질 수도 있다.

비어 있는 리스트는 list1 = list() 로 생성하여 사용할 수 있다.

리스트 인덱싱과 슬라이싱

리스트 인덱싱

리스트 인덱싱(indexing)은 리스트 내 데이터를 index를 이용하여 순서대로 접근 가능 것을 말한다.

learner_list= ["sam", "nate", "frank", "sunny", “kelly"]

learner_list 를 접근 가능하게 하는 index은 다음 표와 같다.

index(seq)01234
valuesamnatefranksunnykelly
index(seq)-5-4-3-2-1

리스트는 리스트로 구성된 리스트를 정의할 수 있는데, 이런한 경우 중첩 리스트가 된다. 중첩 리스트 경우 대괄호([])를 중첩하여 데이터에 접근 가능하게 한다.

kgh = ['김강현', '010-1234-5678', 20, 172.3, '제주']
whang = ['황현', '02-9871-1234', 19, 163.5, '서울']
list1 = [kgh, whang] 
print(list1)
print(len(list1))
print(list1[-1][1])
[['김강현', '010-1234-5678', 20, 172.3, '제주'], ['황현', '02-9871-1234', 19, 163.5, '서울']]
2
02-9871-1234

리스트 슬라이싱

리스트 슬라이싱(slicing)은 리스트 내 서브 리스트(sub list) 단위로 접근할 때 사용된다. 문자열과 마찬가지로 슬라이싱 기법을 적용 할 수 있다. 아래 코드는 리스트 a의 index=0에서 length=2인 서브 리스트로 슬라이싱한결과를 보여준다.

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

문자열 슬라이싱과 마찬가지로, 아래 코드에서 리스트 b는 a의 첫 번째 요소로 부터 length=2인 서브 리스트이고, 리스트 c는 a의 index=2(세번째 요소)에서 끝까지의 서브 리스트이다.

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

리스트 연산과 병합

in 연산자

in 연산자는 리스트 내에 데이터가 있는지 없는지 확인할 때 사용할 수 있다.

learner_list= ["sam", "nate", "frank", "sunny", "kelly"]
print("sam" in learner_list)
print("nate" in learner_list)
print("keith" in learner_list)
True
True
False

+ 연산자

+ 연산자는 리스트 두개를 이어 붙여서 새로운 리스트를 생성한다.

a = ['a', 'b'] + ['c', 'd', 'e']
print(a)
['a', 'b', 'c', 'd', 'e']

* 연산자

* 연산자는 리스트를 지정된 정수 만큼 복제해서 이어붙이는 방식으로 새로운 리스트를 생성한다. 정수와 리스트의 순서는 상관없다.

abc = ['a', 'b', 'c']
print(abc*3)
['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

리스트 수정과 삭제

리스트는 값을 수정하거나 삭제할 수 있다.

리스트 요소 수정

리스트 대괄호([])위치의 값을 수정할 수 있다.

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

리스트 요소 삭제

del a[x]은 인자가 가르키는 x번째 요소값을 제거한다.

a = [1, 2, 3]
del a[1]
print(a)
[1, 3]

리스트 함수(메서드) 활용

파이썬 리스트에서 유용하게 사용하는 리스트 관련 함수들에 대해 알아본다.

(참고: https://www.w3schools.com/python/python_ref_list.asp)

append() – 리스트에 요소 추가

append()는 리스트에 요소를 덧붙이는 기능을 한다. 따라서, 리스트의 마지막에 요소를 추가한다.

그리고, 리스트 안에는 어떤 자료형도 추가할 수 있어, 리스트에 리스트도 추가할 수 있다.

a = [1, 2, 3]
a.append(4)
print(a)
a.append([5, 6])
print(a)
[1, 2, 3, 4]
[1, 2, 3, 4, [5, 6]]

sort() – 리스트 정렬

sort()는 리스트의 요소를 순서대로 정렬한다. 문자 역시 알파벳 으로 정렬한다.

a = [1, 4, 3, 2]
a.sort()
print(a)
b = ['a', 'c', 'b']
b.sort()
print(b)
[1, 2, 3, 4]
['a', 'b', 'c']

reverse() – 리스트 뒤집기

reverse()는 리스트를 역순으로 뒤집는다.

a = ['a', 'c', 'b']
a.reverse()
print(a)
['b', 'c', 'a']

index() – 리스트 인덱스 반환

index() 는 리스트에 있는 값들 중 일치하는 값이 있으면 그 인덱스를 리턴한다.

a = [1, 2, 3]
a.index(3)
a.index(1)
2
0

insert() – 리스트 요소 삽입

insert(a, b)는 리스트의 a번쨰 위치에 b를 삽입하는 함수이다. 파이선은 0부터 시작이므로 실수 하지 않도록 한다.

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

remove() – 리스트 요소 제거

remove()는 리스트에서 인자가 첫 번째로 나오는 요소를 삭제한다.

a = [1, 2, 3, 1, 2, 3]
a.remove(3)
print(a)
a.remove(3)
print(a)
[1, 2, 1, 2, 3]
[1, 2, 1, 2]

pop() – 리스트 요소 끄집어 내기

pop()은 리스트의 맨 마지막 요소를 리턴하고, 요소는 리스트에서 삭제한다. pop(x)와 같이 인자가 있는 경우, x번째 요소를 리턴하고 삭제한다.

a = [1, 2, 3]
a.pop()
print(a)

b = [1, 2, 3]
b.pop(1)
print(b)
3
[1, 2]
2
[1, 3]

count() – 리스트 요소 개수 세기

count(x)는 리스트 안헤 x가 몇개 있는지 그 개수를 리턴하는 함수이다.

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

extend() – 리스트 확장

extend(x)는 리스트를 확장한다. x는 리스트만 올 수 있으며, 원래 리스트에 x를 더한다.

a = [1, 2, 3]
a.extend([4, 5])
print(a)

b = [6, 7]
a.extend(b)
print(a)
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7]

파이썬 기초 문법

 참고

 

답글 남기기