왜 튜플이 있습니까?

Feb 24 2023
저는 3년 전부터 Python을 다루기 시작했고, 데이터 유형, 클래스 유형 등 다양한 강의 자료를 포괄적으로 공부하면서 튜플의 목적과 의미에 대해 반성하기 위해 잠시 멈춰서 왜 그런지 더 깊이 생각하게 되었습니다. 그것은 심지어 물건입니까? 솔직히 말해서, 나는 내 프로젝트에서 튜플을 거의 사용하지 않았고 튜플이 목록보다 더 나은 사용 사례를 가질 수 있다는 사실을 결코 이해하지 못했습니다(거의 같은 일을 합니다). 지금까지 사용 사례!! Tuples에서 제가 가장 좋아하는 YouTube 채널 NetworkChuck(꼭 구독하세요, 그는 정말 대단해요 ❤️)의 동영상을 발견했습니다. 그는 나와 같은 질문을 했거나 내 잠재 의식이 그랬을 수도 있습니다.

저는 3년 전에 Python을 사용하기 시작했고 데이터 유형, 클래스 유형 등을 포함한 다양한 수업 자료에 대한 종합적인 연구를 수행하면서 튜플 의 목적과 중요성에 대해 반성하기 위해 잠시 멈추고 더 깊이 생각하게 되었습니다 . 그것은 심지어 물건입니까?

솔직히 말해서, 나는 내 프로젝트에서 튜플을 거의 사용하지 않았고 튜플이 목록보다 더 나은 사용 사례를 가질 수 있다는 사실을 결코 이해하지 못했습니다(거의 같은 일을 합니다). 사용 사례

지금까지!!

Tuples에서 제가 가장 좋아하는 YouTube 채널 NetworkChuck (꼭 구독하세요, 그는 정말 대단해요 ❤️) 의 동영상을 발견했습니다 . 그는 나와 같은 질문을 했거나 내 잠재 의식이 그랬을 수도 있습니다. 이미 목록이 있을 때 튜플이 필요한 이유는 무엇입니까?

물론 우리는 [ list ]가 대괄호 안에 있고 ( tuples )가 둥근 괄호 안에 있다는 것을 알고 있습니다. 이미지를 보면 문자열과 정수를 목록에서와 같은 방식으로 가질 수 있습니다.

두 데이터 유형의 유형을 인쇄했습니다.

튜플은 리스트와 어떻게 다릅니까?

튜플이 필요한 이유는 무엇입니까?

왜 존재합니까?

모든 질문에 답하고 이 문제를 해결해 봅시다!

불변성

Chuck이 말했듯이 Immutable은 변경할 수 없다는 멋진 단어입니다.

불변 == 변경 불가능

변경 가능 == 변경 가능

( TUPLES )는 불변의 의미입니다. 반면에 [ ​​LISTS ]는 변경 가능하며 대괄호 안의 데이터는 변경할 수 있습니다.

MUTABLE 이므로 목록의 값을 변경해 봅시다.

lists = ["Shivam", "Vasudeva",10]
lists = ["Shivam", "Vasudeva",10]
print("Before changing-- ",lists)
lists[2] = 14
print("After changing-- ", lists)
Before changing--  ['Shivam', 'Vasudeva', 10]
After changing--  ['Shivam', 'Vasudeva', 14]

tups = ("Shivam", "Vasudeva",10)
print("Before changing-- ",tups)
tups[2] = 14
print("After changing-- ",tups)

이제 문제는 어떻게 도움이 되는가입니다. 어떻게 코드가 더 좋아지나요?

LIST보다 기능이 하나 적으면 TUPLES가 더 좋아지나요? 그게 어떻게 말이 됩니까?

속도 ️

튜플은 불변이라는 사실 때문에 리스트보다 빠릅니다.

그의 비디오에서 Chuck은 튜플이 얼마나 빠른지 알아보기 위해 작은 테스트를 수행했습니다. 그는 결과를 제공하기 위해 두 데이터 유형에 걸리는 시간을 캡처하기 위해 튜플과 목록에 작은 코드를 실행했습니다.

import timeit
#SPEED TEST
#Lists
print("List = ",timeit.timeit(stmt= '["Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437]', number=100000000))

#tuples 
print("Tuples = ",timeit.timeit(stmt= '("Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437)', number=100000000))

목록은 TUPLES보다 10배 이상 걸렸습니다. 미친거 아니야?

이러한 종류의 속도는 작은 규모에서는 중요하지 않지만 속도가 중요한 요소인 높은 계산에서는 튜플이 큰 차이를 만들 수 있습니다.

음, 이 속도 차이에 대한 간단한 설명이 있습니다.

목록은 변경 가능하며 변경할 수 있으며 같은 이유로 2개의 메모리 블록에 저장되는 반면 튜플은 불변성 때문에 메모리의 1개 블록에만 저장됩니다.

모든 것이 멋지게 들리지만 튜플을 사용해야 하는 이유를 여전히 확신하지 못할 수도 있습니다‼️

데이터 유형

스택 오버플로에 따르면 [ 목록 ]이 하나의 목록에 다른 종류의 데이터 유형을 가질 수 있지만 좋은 방법으로 간주되지 않습니다.

목록 의 올바른 사용은 동종 유형의 데이터를 갖는 것입니다 . 즉, 하나의 목록은 동일한 데이터 유형을 가져야 합니다.

#List Homogenous data
["Toronto", "Calgary", "Montreal", "Vancouver"]
#String is the only datatype

#Heterogeneous Data 
[("Toronto", 647, "Dundas"), ("Calgary", 587, "Ravenstern")]
#String and integers

튜플을 만들기 위해 ( )도 필요하지 않습니다. 바보 같죠? 아래 코드를 보면 괄호를 넣지 않고 자신이 속한 클래스의 타입을 출력했습니다.

canada = "Toronto", "Calgary","Montreal"
print(type(canada))

      
                
Result of executing of code above

canada = "Toronto",
print(type(canada))

이것을 알고 있거나 튜플이 할 수 있는 더 이상한 일을 알고 있다면 댓글로 알려주십시오.

계속 공부하다!!