티스토리 뷰
반응형
리스트 연산자
(1) 연결(+)
list_a = [1,2,3]
list_b = [4,5,6]
print(list_a + list_b)
</>
[1,2,3,4,5,6]
(2) 반복(*)
list_a = [1,2,3]
print(list_a * 3)
</>
[1,2,3,1,2,3,1,2,3]
(3) 길이 len() 함수
- 괄호 내부에 문자열을 넣으면 문자열의 글자 수(=길이)를 세어줌
- 리스트 변수를 넣으면 요소의 개수를 세어 줌
list_a = [1,2,3]
print(len(list_a))
</>
3
요소 추가
(1) append() 함수
- 리스트 뒤에 요소를 추가함
- 리스트에 요소 하나만 추가
- 리스트명.appen(요소)
list_a = [1,2,3]
list_a.append(4)
list_a.append(5)
print(list_a)
</>
[1,2,3,4,5]
(2) insert() 함수
- 리스트의 중간에 요소를 추가함
- 리스트 요소 하나만 추가
- 리스트명.insert(위치, 요소)
list_a = [1,2,3]
list_a.insert(0, 10)
print(list_a)
</>
[10,1,2,3]
(3) extend() 함수
- 한 번에 여러 요소를 추가할 수 있음
- 원래 리스트 뒤에 새로운 리스트의 요소를 추가해 줌.
- 리스트명.extend([리스트])
list_a = [1,2,3]
list_a.extend([4,5,6]
print(list_a)
</>
[1,2,3,4,5,6]
⭐️ 리스트 연결 연산자(+)와 요소 추가의 차이
- 리스트 연결 연산자와 extend() 함수는 비슷한 형태로 동작하지만, 원래 리스트에 영향을 주는지 안주는지가 다름
- 비파괴적: 리스트 연결 연산자는 원래 리스트에 영향을 주지 않음
- 파괴적: append(), insert(), extend() 함수는 리스트에 직접적 영향을 주는 함수 또는 연산
- 자료는 비파괴적으로 사용하는 것이 편리. 원본도 활용, 새로운 결과도 활용할 수 있어 선택지가 넓음. 그러나 용량이 커짐
- 하나하나 입력해서 원본에 변화가 있는지 없는지 확인해야 함
비파괴적
list_a = [1,2,3]
list_b = [4,5,6]
print(list_a + list_b)
print(list_a)
print(list_b)
</>
[1,2,3,4,5,6]
[1,2,3]
[4,5,6]
파괴적
list_a = [1,2,3]
list_b = [4,5,6]
print(list_a.extend(list_b)) # 실행결과로 아무것도 출력되지 않음
print(list_a) # list_a 자체에 직접적 변화가 있음
print(list_b)
</>
None
[1,2,3,4,5,6]
[4,5,6]
요소 제거
- 인덱스로 제거하기 : del, pop() ex) 리스트의 1번째 요소를 제거해주세요, 3번째 요소 제거해주세요 ...
- 값으로 제거하기 : remove() ex) 리스트 내부에 있는 2를 제거해주세요 ...
- 모두 제거하기 : clear
(1) del 키워드 - 파괴적
- 리스트의 특정 인덱스에 있는 요소를 제거함
- del 리스트명[인덱스]
list_a = [0, 1, 2, 3, 4, 5]
del list_a[1]
print(list_a)
</>
[0, 2, 3, 4, 5]
- 범위를 지정해 리스트의 요소를 한꺼번에 제거할 수 있음
list_a = [0, 1, 2, 3, 4, 5, 6]
del list_a[3:6]
print(list_a)
</>
[0, 1, 2, 6]
- 범위의 한쪽을 입력하지 않으면 지정한 위치를 기준으로 한쪽을 전부 제거해 버릴 수 있음
- [:3]을 지정하면 3을 기준(3번째 불포함)으로 왼쪽 모두 제거
list_a = [0, 1, 2, 3, 4, 5, 6]
del list_a[:3]
print(list_a)
</>
[3, 4, 5, 6]
- [3:]을 지정하면 3을 기준(3번째 포함)으로 오른쪽을 모두 제거
list_a = [0, 1, 2, 3, 4, 5, 6]
del list_a[3:]
print(list_a)
</>
[0, 1, 2]
(2) pop() 함수 - 파괴적
- 제거할 위치에 있는 요소 제거함
- 매개변수를 입력하지 않으면 마지막 요소를 제거함. pop() 이면 자동으로 -1이 들어가는 것으로 취급하여 마지막 요소 제거
- 리스트명.pop(인덱스)
list_a = [0, 1, 2, 3, 4, 5]
list_a.pop(2)
print(list_a)
</>
[0, 1, 3, 4, 5]
(3) remove() 함수 - 파괴적
- '리스트 내부에 있는 2를 제거해주세요'와 같이 값을 지정해서 제거하는 것
- 그러나 함수에 지정한 값이 리스트 내부에 여러개 있어도 가장 먼저 발견되는 하나만 제거함
- 앞쪽에 있는 2만 제거된 것 (여러 개의 값을 모두 제거하려면 반복문과 조합해야함)
- 리스트.remove(값)
list_c = [1, 2, 1, 2] #리스트 선언하기
list_c.remove(2) #리스트의 요소를 값으로 제거하기
print(list_c)
</>
[1, 1, 2]
(4) clear() 함수 - 파괴적
- 리스트 내부의 요소를 모두 제거할 때 사용
- 리스트.clear()
- 프로그래밍 언어에서는 내부에 있는 모든 것을 제거할 때 항상 clear라는 이름을 사용.
- 리스트 뿐만 아니라 딕셔너리, 웹 개발, 인공지능 개발 등에도 많이 사용
list_d = [0, 1, 2, 3, 4, 5]
list_d.clear()
print(list_d)
</>
[] # 요소가 모두 제거됨
리스트 내부 확인
(1) in 연산자
- 특정 값이 리스트 내부에 있는지 확인
- 리스트 내부에 값이 있으면 True, 없으면 False 출력
- 값 in 리스트
list_a = [273, 32, 103, 57, 52]
print(273 in list_a)
print(99 in list_a)
print(100 in list_a)
print(52 in list_a)
</>
True
False
False
True
(2) not in 연산자
- not in 연산자는 리스트 내부에 해당 값이 없는지 확인하는 연산자
- 값 not in 리스트
- in 연산자와 반대로 동작함
list_a = [273, 32, 103, 57, 52]
print(273 not in list_a)
print(99 not in list_a)
print(100 not in list_a)
print(52 not in list_a)
print(not 273 in list_a)
</>
False
True
True
False
False
반응형
'Language > PYTHON' 카테고리의 다른 글
for 반복문 (0) | 2021.06.20 |
---|---|
딕셔너리 (0) | 2021.06.20 |
리스트 (1) 리스트 / 요소 / IndexError 예외 (0) | 2021.06.16 |
조건문 : if ~ else 구문 / elif 구문 (0) | 2021.06.10 |
조건문 : If 조건문 (0) | 2021.06.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 리스트
- StringBuilder 클래스
- Format 클래스
- IndexError
- Pattern 클래스
- 문자열함수
- java.time.package
- 리스트연산자
- 프로그램
- Objects 클래스
- 포장 클래스
- StringTokenizer 클래스
- Date 클래스
- 역반복문
- Math 클래스
- Arrays 클래스
- 순환할당
- FALSE
- 함수
- 자료형
- 파이썬
- 요소선택
- 기본 API 클래스
- not_in
- 딕셔너리
- Calendar 클래스
- StringBuffer 클래스
- Random 클래스
- python
- 스레드 스케줄링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함