티스토리 뷰
📌 목차
파이썬 리스트 사칙연산
파이썬에서 리스트는 사칙 연산을 지원합니다. 리스트의 사칙 연산을 사용하면 여러 리스트를 연산하여 새로운 리스트를 생성할 수 있습니다.
리스트 더하기 연산(+)
먼저, 리스트 더하기 연산을 사용하면 두 개의 리스트를 이어붙인 새로운 리스트를 생성할 수 있습니다. 다음은 리스트 더하기 연산의 예시입니다.
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list1 + list2
print(result) #[1, 2, 3, 4, 5, 6]
리스트 곱하기 연산(*)
리스트 빼기 연산은 첫 번째 리스트에서 두 번째 리스트에 포함된 원소를 제거한 새로운 리스트를 생성합니다. 다음은 리스트 빼기 연산의 예시입니다.
list1 = [1, 2, 3]
result = list1 * 3
print(result) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
list1 = [1, 2, 3, 4, 5]
list2 = [3, 4]
result = [x for x in list1 if x not in list2]
print(result)
리스트 빼기 연산(-)
두리스트 사이의 빼기 연산은 불가능하다! 리스트 간의 빼기 연산은 차집합을 구하는 연산으로 생각해야 합니다.
리스트 간의 빼기 연산을 하기 위해서는 집합(set)으로 변환한 뒤, 차집합 연산을 수행해야 합니다. 예를 들어, 다음과 같이 리스트 간의 차집합을 구할 수 있습니다.
그래서
list1 = [1, 2, 3]
list2 = [2, 3, 4]
print(list1-list2)
를 하게 되면 unsupported operand type(s) for -: 'list' and 'list' 이런 오류가 발생한다.
다음은 리스트에서 빼기 연산을 사용한 예제(차집합)
리스트 빼기 연산을 구현할 때, 두 가지 방법이 있습니다. 첫 번째 방법은 리스트 컴프리헨션을 사용하는 것이고, 두 번째 방법은 set() 함수를 사용하여 집합으로 변환한 뒤, 차집합 연산을 수행하는 것입니다.
list1 = [1, 2, 3]
list2 = [2, 3, 4]
set1 = set(list1)
set2 = set(list2)
result = list(set1 - set2)
print(result)
list1 = [1, 2, 3]
list2 = [2, 3, 4]
result = [x for x in list1 + list2 if x not in list1 or x not in list2]
print(result)
그렇다면,
set()함수를 사용하는 코드와 리스트 컴프리헨션을 사용한 코드 중 어느 코드가 더 효율적일까?
리스트 컴프리헨션 방법은 간단하고 직관적이지만, 두 리스트의 크기가 커질수록 처리 시간이 길어지는 단점이 있습니다. 이에 비해 set() 함수를 사용하는 방법은 집합 연산의 성질을 이용하여 더 빠르게 처리할 수 있습니다. 따라서 두 방법을 비교하면, set() 함수를 사용하는 방법이 더 효율적입니다.
따라서, 위 코드 중에서 list1과 list2의 차집합을 구하는 부분에서는 set() 함수를 사용하여 집합으로 변환한 뒤, 차집합 연산을 수행하는 것이 더 효율적입니다. 따라서 두 코드 중에서는 아래 코드가 더 효율적입니다.
리스트 나누기 연산(/)
리스트 나누기 연산은 파이썬에서 지원하지 않는 연산입니다. 따라서 리스트를 나누기 위해서는 슬라이싱을 사용해야 합니다.
위에서 설명한 리스트 연산들은 리스트를 다룰 때 유용하게 사용될 수 있습니다. 다만, 리스트 곱하기 연산은 리스트를 반복적으로 사용해야 할 때나 리스트의 크기를 조절해야 할 때 유용하게 사용될 수 있습니다.
리스트 곱하기 연산을 이용한 리스트 초기화
list1 = [0] * 5
print(list1) #[0, 0, 0, 0, 0]
위의 코드에서는 [0, 0, 0, 0, 0]와 같은 크기의 리스트를 초기화합니다.
3개의 리스트 더하기 연산을 이용한 리스트 병합
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
result = list1 + list2 + list3
print(result) #[1, 2, 3, 4, 5, 6, 7, 8, 9]
위의 코드에서는 list1, list2, list3를 이어붙인 리스트를 생성합니다. 실행 결과는 [1, 2, 3, 4, 5, 6, 7, 8, 9]가 됩니다.
리스트 빼기 연산(차집합)을 이용한 중복 원소 제거
list1 = [1, 2, 3, 3, 4, 5]
list2 = [3, 5]
result = list(set(list1) - set(list2))
print(result) #[1, 2, 4]
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
result = [x for x in list1 + list2 if x not in list1 or x not in list2]
print(result) #[1, 2, 5, 6]
리스트 더하기 연산을 이용한 리스트 합치기
list1 = ['a', 'b']
list2 = ['c', 'd']
result = [i + j for i in list1 for j in list2]
print(result)
'일상 > 파이썬' 카테고리의 다른 글
python is 연산자와 ==의 차이는? (0) | 2023.12.31 |
---|---|
리스트 고급 활용(리스트컴프리헨션,필터, 리스트 요소 합, 재귀함수) (0) | 2023.03.30 |
파이썬에서 문자열 리스트 활용 예제 (1) | 2023.03.27 |
[파이썬]슬라이싱 (문법, 예제 (0) | 2023.03.24 |
파이썬에서 리스트 활용 예제(생성, 정렬, 길이, for,max,min,변환) (0) | 2023.03.23 |
- Total
- Today
- Yesterday
- 블로그신뢰성
- 리스트
- range()
- 티스토리하위카테고리설정
- 식이섬유가높은빵
- 블로그전문성
- 여자심장병
- 블로그분류
- 아기치즈선택
- 아티산빵
- 가열식가습기추천 #2023가열식가습기
- 리스트요소의합
- 가열식가습기 #가열식가습기주의할점 #가열식가습기단점
- 리스트고급
- GPTCHAT활용
- 돌아기치즈
- 파이썬리스트
- 현미빵
- 치즈단계
- gptchat문제점
- 리스트가로출력
- list for
- GPTCHAT레시피
- Mediterranean diet
- GPTCHAT꿀팁
- 파이썬리스트기초
- 티스토리하위카테고리만들기
- 파이썬
- 유제품알러지
- 치즈알러지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |