오늘도 개발

파이썬 리스트(List) 본문

웹 프로그래밍/Python3

파이썬 리스트(List)

Sueeeeeee 2022. 6. 3. 10:34

1. 리스트 생성

- 리스트 : 여러 값을 저장할 수 있는 자료형

a = [1, 2, 3]

# 빈 리스트 생성
c = []
b = list()

# 다른 자료형을 리스트 자료형으로 변환
c = list('python')
# ['p', 'y', 't', 'h', 'o', 'n']

2. 리스트 인덱싱

첫 요소의 인덱스는 0, 끝 요소의 인덱스는 -1로 시작

>>> a = [1, 2, 3]
>>> a[0]
1
>>> a[-1]
3
>>> a[-2]
2

3. 리스트 슬라이싱

[:]사용. [0:2]에서 2번 요소는 포함 안 됨.

리스트를 슬라이싱하면 새 주소에 슬라이싱한 새 객체를 생성한다.

a = [1, 2, 3, 4, 5]

print(a[0:2])
# [1, 2]

print(a[2:])
# [3, 4, 5]

print(a[:2])
# [1, 2]

# 새 주소에 리스트 복사
b = a[:]
print(b)
# [1, 2, 3, 4, 5]

print(a is b)
# False

슬라이스로 요소 삽입

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

슬라이스로 요소 대체

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

4. 리스트 연산

리스트를 연산하면 새 주소에 연산의 결과로 나온 새 객체를 생성한다.

리스트 더하기 +

a = [1, 2, 3]
b = [4, 5, 6]
print(a + b)
# [1, 2, 3, 4, 5, 6]

 

리스트 반복하기 *

a = [1, 2, 3]
print(a * 3)
# [1, 2, 3, 1, 2, 3, 1, 2, 3]

 

리스트 길이 구하기

a = [1, 2, 3]
print(len(a))
# 3

 

다른 자료형끼리 연산을 시도하는 경우 

TypeError 발생하므로 자료형을 통일해주어야 함

a = [1, 2, 3]
print(a[0] + '!')
# TypeError 발생

print(str(a[0]) + '!')
# 1!

5. 리스트 수정/삭제

a = [1, 2, 3]
# 수정
a[0] = 4

b = [1, 2, 3]
# 삭제
del b[0] 
print(b)
# [2, 3]

6. 리스트 관련 함수

append : 추가

a = [10, 20, 30]
a.append(500)
a.append([500, 600])
print(a)
# [10, 20, 30, [500, 600]]

sort()/sorted(listname) : 정렬/정렬 후 새 배열 반환

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

a.sort(reverse=True)
print(a)
# [3, 2, 1]


# sorted(arrayname)
b = [3, 1, 2]
c = sorted(b)
print(c)
# [1, 2, 3]

reverse : 뒤집기

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

index : 위치 반환(여러 개 있으면 처음 값만 구함)

a = [1, 2, 2]
print(a.index(2))
# 1

insert : 삽입

a = [10, 20]
a.insert(1, 15)
print(a)
# [10, 15, 20]

remove : 제거

a = [10, 20, 30]
a.remove(20)
print(a)
# 10, 30

pop : 마지막 요소 제거

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

print(a.pop(1))
# 1번 인덱스 삭제
# del a[1]과 동일함
# 2

count : 특정 요소 개수

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

extend : 확장

a = [10, 20, 30]
a.extend([40, 50])
print(a)
# [10, 20, 30, 40, 50]

clear : 리스트 모든 요소 삭제

a = [10, 20, 30]
a.clear()
print(a)
# []

7. 리스트 내포(List comprehension)

리스트 내포는 [] 안에 for문을 넣어 리스트를 만드는 방식이다.

리스트 내포를 사용하면 긴 코드를 간단하게 만들 수 있다. 

a = [1, 2, 3]
# a의 각 요소에 2를 곱한 새로운 리스트 생성
multiple = [num * 2 for num in a]
print(multiple)
# [2, 4, 6]

if문과 같이 사용할 수도 있다.

a = [1, 2, 3]
# 각 요소에 2를 곱한 결과가 4일때는 제외
multiple = [num * 2 for num in a if num * 2 != 4]

print(multiple)
# [2, 6]

range()와 사용하는 경우는 다음과 같다.

a = [i for i in range(6)]
print(a)
# [0, 1, 2, 3, 4, 5]

# 0에서 5사이 숫자 중 짝수에만 2를 곱하기
b = [i * 2 for i in range(6) if i % 2 == 0]
print(b)
# [0, 4, 8]

 

 

참고

파이썬 코딩 도장 Unit 10.1 리스트 만들기

점프 투 파이썬 02-3 리스트 자료형

점프 투 파이썬 03-3 for문

 

'웹 프로그래밍 > Python3' 카테고리의 다른 글

파이썬 딕셔너리(Dictionary)  (0) 2022.06.05
파이썬 튜플(Tuple)  (0) 2022.06.04
파이썬의 출력 방법  (0) 2022.06.03
CPython이 변수를 처리하는 방법  (0) 2022.06.01
파이썬 문자열(String)  (0) 2022.06.01