Python의 목록과 튜플은 Python 데이터 구조의 두 가지 클래스입니다. 목록 구조는 동적이며 쉽게 변경되지만 튜플 구조는 정적이며 변경할 수 없습니다. 이는 튜플이 일반적으로 목록보다 빠르다는 것을 의미합니다. 리스트는 대괄호로 표시되고 튜플은 괄호로 표시됩니다.
Python에서 List와 Tuple의 차이점
스노 | 목록 | 튜플 |
|---|---|---|
| 1 | 기울기 ~이다 변하기 쉬운 | 튜플 불변이다 |
| 2 | 반복에는 시간이 많이 소요됩니다. | 반복의 의미는 비교적 빠릅니다. |
| 삼 | 목록은 삽입 및 삭제와 같은 작업을 수행하는 데 더 좋습니다. | Tuple 데이터 유형은 요소에 액세스하는 데 적합합니다. |
| 4 | 목록은 더 많은 메모리를 소비합니다. | 튜플은 목록에 비해 메모리를 덜 소비합니다. |
| 5 | 목록에는 여러 내장 메소드가 있습니다. | Tuple에는 내장된 메소드가 많지 않습니다. |
| 6 | 예상치 못한 변경 및 오류가 발생할 가능성이 더 높습니다. | 튜플은 변경되지 않기 때문에 오류가 발생할 가능성이 훨씬 적습니다. |
Python 목록과 Python Tuple
튜플은 변경할 수 없고 목록은 변경 가능한지 테스트합니다.
여기서는 목록 및 튜플 가변성 테스트를 비교해 보겠습니다.
파이썬3 # Creating a List with # the use of Numbers # code to test that tuples are mutable List = [1, 2, 4, 4, 3, 3, 3, 6, 5] print('Original list ', List) List[3] = 77 print('Example to show mutability ', List)> 산출
Original list [1, 2, 4, 4, 3, 3, 3, 6, 5] Example to show mutability [1, 2, 4, 77, 3, 3, 3, 6, 5]>
우리는 여기서 볼 수 있습니다 튜플 수정할 수 없습니다.
파이썬3 # code to test that tuples are immutable tuple1 = (0, 1, 2, 3) tuple1[0] = 4 print(tuple1)>
산출:
내 모니터 크기
Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 3, in tuple1[0]=4 TypeError: 'tuple' object does not support item assignment>
Python에서 리스트와 튜플 중 어느 것이 더 좋나요?
이 답변을 테스트하기 위해 Python Tuple 및 Python List에서 몇 가지 작업을 실행해 보겠습니다. 이것은 우리에게 Python에서 더 나은 목록이나 튜플이 무엇인지에 대한 더 나은 아이디어를 제공할 것입니다.
튜플이 메모리 효율적인지 테스트
튜플은 단일 메모리 블록에 저장되므로 새 객체를 위한 추가 공간이 필요하지 않지만 목록은 두 블록에 할당됩니다. 파이썬 객체 정보와 두 번째는 데이터에 대한 가변 크기 블록입니다.
파이썬3 import sys a_list = [] a_tuple = () a_list = ['Geeks', 'For', 'Geeks'] a_tuple = ('Geeks', 'For', 'Geeks') print(sys.getsizeof(a_list)) print(sys.getsizeof(a_tuple))> 산출
96 80>
Tuples에서 반복의 의미가 비교적 빠른지 테스트합니다.
튜플은 단일 메모리 블록에 저장되므로 불변이기 때문에 새 객체를 위한 추가 공간이 필요하지 않습니다. 반면 목록은 두 블록에 할당됩니다. 첫 번째는 모든 블록이 포함된 고정 블록입니다. 파이썬 객체 정보와 두 번째로 데이터를 위한 가변 크기 블록으로 더욱 빨라집니다.
파이썬3 # code import sys, platform import time l=list(range(100000001)) t=tuple(range(100000001)) start = time.time_ns() for i in range(len(t)): a = t[i] end = time.time_ns() print('Total lookup time for Tuple: ', end - start) start = time.time_ns() for i in range(len(l)): a = l[i] end = time.time_ns() print('Total lookup time for LIST: ', end - start)> 산출
Total lookup time for Tuple: 7038208700 Total lookup time for LIST: 19646516700>
변경 가능한 목록과 변경 불가능한 튜플
~ 안에 파이썬 , 목록과 튜플 모두 인덱싱, 슬라이싱, 연결 등을 포함한 다양한 작업을 지원합니다. 그러나 목록과 튜플에 사용할 수 있는 작업에는 각각 가변성과 불변성으로 인해 약간의 차이가 있습니다.
파이썬 인덱싱
리스트와 튜플 모두 0부터 시작하는 인덱스를 사용하여 개별 요소에 액세스할 수 있습니다.
파이썬3 my_list = [1, 2, 3] my_tuple = (4, 5, 6) print(my_list[0]) # Output: 1 print(my_tuple[1]) # Output: 5>
산출
1 5>
파이썬 슬라이싱
목록과 튜플 모두 슬라이싱을 사용하여 요소의 하위 집합을 추출할 수 있습니다.
내 모니터 크기 어떻게 알아?파이썬3
my_list = [1, 2, 3, 4, 5] my_tuple = (6, 7, 8, 9, 10) print(my_list[1:3]) # Output: [2, 3] print(my_tuple[:3]) # Output: (6, 7, 8)>
산출
[2, 3] (6, 7, 8)>
파이썬 연결
목록과 튜플 모두 + 연산자를 사용하여 연결할 수 있습니다.
파이썬3 list1 = [1, 2, 3] list2 = [4, 5, 6] tuple1 = (7, 8, 9) tuple2 = (10, 11, 12) print(list1 + list2) # Output: [1, 2, 3, 4, 5, 6] print(tuple1 + tuple2) # Output: (7, 8, 9, 10, 11, 12)>
산출
[1, 2, 3, 4, 5, 6] (7, 8, 9, 10, 11, 12)>
메모 - 그러나 변경 가능성으로 인해 목록에만 사용할 수 있는 일부 작업이 있습니다.
파이썬 추가
Append() 메서드를 사용하여 목록에 새 요소를 추가할 수 있습니다.
파이썬3 my_list = [1, 2, 3] my_list.append(4) print(my_list) # Output: [1, 2, 3, 4]>
산출
[1, 2, 3, 4]>
파이썬 확장
add() 메서드를 사용하여 목록을 다른 목록으로 확장할 수도 있습니다.
자바 스윙 튜토리얼파이썬3
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1) # Output: [1, 2, 3, 4, 5, 6]>
산출
[1, 2, 3, 4, 5, 6]>
파이썬 제거
기울기 Remove() 메소드를 사용하여 요소를 제거할 수 있습니다.
파이썬3 my_list = [1, 2, 3, 4] my_list.remove(2) print(my_list) # Output: [1, 3, 4]>
산출
[1, 3, 4]>
목록 대신 튜플을 언제 사용해야 할까요?
~ 안에 파이썬 , 튜플 및 목록은 모두 데이터 컬렉션을 저장하는 데 사용되지만 몇 가지 중요한 차이점이 있습니다. 목록 대신 튜플을 사용하고 싶을 수 있는 몇 가지 상황은 다음과 같습니다.
불변 데이터 – 튜플 불변이므로 일단 생성되면 내용을 변경할 수 없습니다. 따라서 튜플은 설정, 상수 값 또는 프로그램이 실행되는 동안 동일하게 유지되어야 하는 기타 정보와 같이 변경되어서는 안 되는 정보를 저장하는 데 적합한 옵션이 됩니다.
성능 – 튜플 목록보다 가볍고 변경이 불가능하므로 생성, 액세스 및 반복이 더 빠를 수 있습니다. 튜플을 사용하는 것이 목록 정기적으로 저장, 검색 및 사용해야 하는 대규모 데이터 컬렉션이 있고 해당 데이터를 변경할 필요가 없는 경우.
데이터 무결성 - 데이터의 구조와 내용이 일관되게 유지되도록 함으로써 튜플을 활용하여 데이터 무결성을 보장할 수 있습니다. 예를 들어, 함수가 보고 설정된 양의 값을 목록이 아닌 튜플로 반환하는 것이 좋습니다.