Notice
Recent Posts
Recent Comments
Link
오늘도 개발
파이썬 리스트(List) 본문
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]
참고
'웹 프로그래밍 > 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 |