programing

리스트와 튜플의 차이점은 무엇입니까?

copysource 2022. 9. 15. 23:36
반응형

리스트와 튜플의 차이점은 무엇입니까?

튜플/목록의 차이와 장점/단점은 무엇입니까?

튜플이 불변하는 것 외에도 그 사용을 안내하는 의미적 구별이 있습니다.튜플은 이질적인 데이터 구조(즉, 항목은 다른 의미를 가진다)인 반면, 목록은 동질적인 시퀀스이다.튜플에는 구조가 있고 목록에는 순서가 있습니다.

이 구별을 사용하면 코드를 보다 명확하고 이해하기 쉬워집니다.

예를 들면, 책내의 참조 장소에의 페이지와 행 번호의 페어가 있습니다.예를 들어 다음과 같습니다.

my_location = (42, 11)  # page number, line number

그런 다음 이 키를 사전의 키로 사용하여 위치에 노트를 저장할 수 있습니다.한편, 리스트를 사용해 복수의 장소를 보존할 수 있습니다.당연히 목록에 위치를 추가하거나 목록에서 위치를 제거할 수 있으므로 목록이 변경 가능한 것이 좋습니다.반면 기존 위치에서 항목을 추가하거나 제거하는 것은 의미가 없습니다. 따라서 튜플은 불변합니다.

기존 위치 태플 내의 항목을 변경해야 할 경우가 있습니다(예: 페이지 줄을 반복하는 경우).그러나 태플 불변성 때문에 각 새 값에 대해 새 위치 태플을 생성해야 합니다.외견상으로는 불편해 보이지만, 이와 같이 불변의 데이터를 사용하는 것은 가치 유형과 기능 프로그래밍 기술의 초석이므로 상당한 이점을 얻을 수 있습니다.

이 문제에 대한 몇 가지 흥미로운 기사가 있습니다. 예를 들어, "Python Tuples is Not Just Constant Lists" 또는 "Python Tuples vs. lists 이해"입니다.Python의 공식 문서에서도 이 점에 대해 언급하고 있습니다.

"튜플은 불변하며 보통 이종 시퀀스를 포함합니다."

Haskell과 같은 정적으로 입력된 언어에서는 일반적으로 튜플의 값이 서로 다르므로 튜플의 길이를 고정해야 합니다.리스트에서는, 모든 값의 타입이 같으며, 길이는 고정되어 있지 않습니다.그래서 그 차이는 매우 명백하다.

마지막으로 Python에는 named tuple이 있는데, 이는 tuple이 이미 구조를 가지고 있어야 하기 때문에 의미가 있다.이는 튜플이 클래스 및 인스턴스(instance)에 대한 경량 대안이라는 생각을 강조합니다.

리스트와 투플 차이.

  1. Literal

    someTuple = (1,2)
    someList  = [1,2] 
    
  2. 크기

    a = tuple(range(1000))
    b = list(range(1000))
    
    a.__sizeof__() # 8024
    b.__sizeof__() # 9088
    

    한 투플 작업의 작은 사이즈 때문에, 그것은 조금 빨리지만 그렇게 언급할 때까지 원소가 엄청나게 많이 있는데에 대해 많지 않다.

  3. 작전 허용되는

    b    = [1,2]   
    b[0] = 3       # [3, 2]
    
    a    = (1,2)
    a[0] = 3       # Error
    

    그것은 또한거나 정렬한 요소가 투플 삭제할 수 없다는 것을 의미한다.그러나, 당신이 유일한 차이 이후 투플 변하는 것이다 여러분은 정말로 가능하지만 새로운 투플을 만들고 있는 요소를 추가하지 않은 둘 다 리스트와 투플에,어서는 이드를 바꿀 새로운 요소를 더할 수 있다.

    a     = (1,2)
    b     = [1,2]  
    
    id(a)          # 140230916716520
    id(b)          # 748527696
    
    a   += (3,)    # (1, 2, 3)
    b   += [3]     # [1, 2, 3]
    
    id(a)          # 140230916878160
    id(b)          # 748527696
    
  4. 사용.

    로서 목록을 변할 수 있는 반면에 투플 사용될 수 있다면 키로 사전에 사용할 수 없습니다.

    a    = (1,2)
    b    = [1,2] 
    
    c = {a: 1}     # OK
    c = {b: 1}     # Error
    

만약 당신이 산책을 갔다, 여러분은에서 어떤 순간 당신의 좌표 기록될 수 있다.(x,y)투플.

만약 네가 여행을 기록하고 싶었습니다, 당신은 리스트에 몇초 당신의 위치를 추가할 수 있다.

하지만 다른 방향으로 그것을 할 수 없었다.

중요한 차이점은 tuples는 변경할 수 없습니다 있다.이 한번 만들어 낸 당신이 투플에 그 값을 변경할 수 없다는 뜻이다.

그래서 만약 여러분이 목록 사용하는 값을 변경해야 할 겁니다

tuples에:

  1. 간단한 성능 향상.
  2. 태플은 불변하기 때문에 사전에 키로 사용할 수 있다.
  3. 변경할 수 없다면 다른 누구도 변경할 수 없습니다.즉 API 기능 등이 요청 없이 태플을 변경할 염려가 없습니다.

목록은 변경할 수 있지만 튜플은 변경할 수 없습니다.

docs.python.org/2/tutorial/datastructures.html 에서

튜플에는 불변성이 있으며, 통상, 패키지 해제(이 섹션의 후반부 참조) 또는 인덱스 작성(또는 명명된 튜플의 경우 속성별)을 통해 액세스되는 이기종 요소의 시퀀스가 포함됩니다.리스트는 변경 가능하며, 그 요소는 보통 균질하며 리스트 상에서 반복하여 접근합니다.

사람들은 튜플과 리스트가 다른 정보를 나타내기를 기대하는 등 그 차이는 대체로 의미 있는 것이라고 언급되어 왔다.그러나 이것은 가이드라인보다 더 나아가 일부 라이브러리는 실제로 전달된 내용에 따라 다르게 동작합니다.예를 들어 NumPy를 예로 들어 보겠습니다(다른 게시물에서 복사하여 추가 예를 요청합니다).

>>> import numpy as np
>>> a = np.arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> idx = (1,1)
>>> a[idx]
4
>>> idx = [1,1]
>>> a[idx]
array([[3, 4, 5],
       [3, 4, 5]])

요점은 NumPy가 표준 라이브러리의 일부가 아닐 수도 있지만 주요 Python 라이브러리이며 NumPy 목록과 튜플은 완전히 다르다는 것입니다.

다음은 Python 목록의 예입니다.

my_list = [0,1,2,3,4]
top_rock_list = ["Bohemian Rhapsody","Kashmir","Sweet Emotion", "Fortunate Son"]

다음은 Python 태플의 예입니다.

my_tuple = (a,b,c,d,e)
celebrity_tuple = ("John", "Wayne", 90210, "Actor", "Male", "Dead")

Python 목록과 튜플은 둘 다 정렬된 값의 집합이라는 점에서 유사합니다.리스트는 괄호([..., ...])와 괄호([..., ...])를 사용하여 작성되는 얕은 차이 외에, 이들 사이의 핵심 기술적 "Python 구문에서 하드 코딩된" 차이점은 특정 태플의 요소는 불변하는 반면 리스트는 해시가 가능하며 사전/사전으로 사용될 수 있다는 것입니다.해시 키!)이것은 어떻게 사용할 수 있는지 없는지에 대한 차이(구문에 의해 선험적 강제)와 사람들이 그것들을 사용하는 방법에 대한 차이('베스트 프랙티스'로 장려되고, 이것이 스마트 프로그래머들이 하는 이다)를 야기한다.튜플을 사용할 때와 리스트를 사용할 때의 차이를 구별하는 데 있어서 가장 큰 차이는 사람들이 요소의 순서에 어떤 의미를 부여하느냐에 있다.

튜플의 경우 '순서'는 정보를 보관하기 위한 특정 '구조'에 불과합니다.첫 번째 필드에서 발견된 값은 각각이 두 개의 다른 치수 또는 척도에 걸친 값을 제공하므로 두 번째 필드로 쉽게 전환할 수 있습니다.이들은 다양한 유형의 질문에 대한 답변을 제공하며, 일반적으로 특정 객체/주제의 특성은 무엇입니까?오브젝트/서브젝트는 일정하게 유지되며 속성이 다릅니다.

목록의 경우 'order'는 시퀀스 또는 방향성을 나타냅니다.두 번째 요소는 특정 공통 척도 또는 치수에 따라 두 번째 위치에 배치되기 때문에 첫 번째 요소 에 와야 합니다.요소는 전체적으로 받아들여지며 대부분 특정 속성에 대한 형식의 단일 질문에 대한 답변을 제공합니다. 이러한 개체/주제는 어떻게 비교됩니까?속성은 일정하게 유지되고 개체/주제는 다릅니다.

대중 문화에는 이러한 차이점에 따르지 않는 사람들과 프로그래머들의 예가 셀 수 없이 많고, 샐러드 포크를 메인 요리로 사용할 수도 있는 수많은 사람들이 있다.결국엔 괜찮고 보통 둘 다 일을 끝낼 수 있어요.

몇 가지 세부 사항을 요약하면

유사점:

  1. Duplicates(복제) - 중복 및 목록 모두 허용
  2. 인덱싱, 선택 슬라이싱 - 대괄호 안에 있는 정수 값을 사용하여 인덱스를 탭하여 나열합니다.따라서 특정 목록 또는 태플의 처음 3개의 값을 원하는 경우 구문은 동일합니다.

    >>> my_list[0:3]
    [0,1,2]
    >>> my_tuple[0:3]
    [a,b,c]
    
  3. 비교 정렬 - 2개의 튜플 또는 2개의 목록을 각각 첫 번째 요소로 비교하고, 동점이 있는 경우 두 번째 요소로 비교합니다.이전 요소가 차이를 보인 후에는 후속 요소에 더 이상 주의를 기울이지 않습니다.

    >>> [0,2,0,0,0,0]>[0,0,0,0,0,500]
    True
    >>> (0,2,0,0,0,0)>(0,0,0,0,0,500)
    True
    

차이점: - 정의상 A priori

  1. 구문 - 목록 사용 [], 튜플 사용()

  2. 가변성 - 지정된 목록의 요소는 변경 가능하며 지정된 튜플의 요소는 변경되지 않습니다.

    # Lists are mutable:
    >>> top_rock_list
    ['Bohemian Rhapsody', 'Kashmir', 'Sweet Emotion', 'Fortunate Son']
    >>> top_rock_list[1]
    'Kashmir'
    >>> top_rock_list[1] = "Stairway to Heaven"
    >>> top_rock_list
    ['Bohemian Rhapsody', 'Stairway to Heaven', 'Sweet Emotion', 'Fortunate Son']
    
    # Tuples are NOT mutable:       
    >>> celebrity_tuple
    ('John', 'Wayne', 90210, 'Actor', 'Male', 'Dead')
    >>> celebrity_tuple[5]
    'Dead'
    >>> celebrity_tuple[5]="Alive"
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object does not support item assignment
    
  3. 해시 테이블(사전) - 해시 테이블(사전)은 키가 해시 가능해야 하므로 목록이 아닌 사전 키 역할을 할 수 있는 것은 튜플뿐입니다.

    #Lists CAN'T act as keys for hashtables(dictionaries)
    >>> my_dict = {[a,b,c]:"some value"}
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: unhashable type: 'list'
    
    #Tuples CAN act as keys for hashtables(dictionaries)
    >>> my_dict = {("John","Wayne"): 90210}
    >>> my_dict
    {('John', 'Wayne'): 90210}
    

차이점 - 사후, 사용 중

  1. 호모 대 호모요소의 이질성 - 일반적으로 목록 개체는 균질하고 태플 개체는 이질적입니다.즉, 리스트는 같은 타입의 오브젝트/서브젝트(모든 대통령 후보, 모든 곡 또는 모든 러너 등)에 사용되는 반면, 강제로 사용되는 것은 아닙니다.단, 튜플은 이종 오브젝트에 더 적합합니다.

  2. 루핑과구조 - 둘 다 루프를 허용하지만(my_list의 x의 경우...) 목록에 대해서만 루프를 수행할 수 있습니다.튜플은 정보 구조화 및 표시에 더 적합합니다(%s에 있는 %s는 %s이며 현재 %s%("John", Wayne", 90210, "Actor", "Dead")).

리스트는 루프용, 튜플은 구조용입니다. "%s %s" %tuple.

리스트는 보통 균질하고 튜플은 보통 이종입니다.

리스트는 가변 길이, 튜플은 고정 길이입니다.

리스트 값은 언제든지 변경할 수 있지만 튜플 값은 변경할 수 없습니다.

장점과 단점은 용도에 따라 다르다.변경할 필요가 없는 데이터가 있는 경우 태플을 사용해야 합니다.그렇지 않은 경우 리스트가 최선의 옵션입니다.

리스트와 태플의 차이

튜플과 리스트는 모두 Python에서 외관상 유사한 시퀀스 유형입니다.

  1. 리터럴 구문

    괄호()를 사용하여 튜플 및 대괄호를 구성합니다.[ ]새 목록을 얻으려고 합니다.또한 적절한 유형의 호출을 사용하여 필요한 구조(태플 또는 목록)를 얻을 수 있습니다.

    someTuple = (4,6)
    someList  = [2,6] 
    
  2. 가변성

    튜플은 불변이고 리스트는 불변입니다.이 점이 다음 포인트의 베이스가 됩니다.

  3. 메모리 사용량

    가변성이 있기 때문에 목록에는 더 많은 메모리가 필요하고 튜플에는 더 적은 메모리가 필요합니다.

  4. 확장

    튜플과 목록 모두에 새 요소를 추가할 수 있습니다. 단, 튜플의 ID가 변경된다는 차이만 있으면 새 개체가 생성됩니다.

  5. 해싱

    튜플은 해시 가능하지만 리스트는 해시 가능하지 않습니다.사전에서 태플을 키로 사용할 수 있다는 뜻입니다.목록은 사전에서 키로 사용할 수 없지만, 태플은 사용할 수 있습니다.

    tup      = (1,2)
    list_    = [1,2] 
    
    c = {tup   : 1}     # ok
    c = {list_ : 1}     # error
    
  6. 의미론

    이 점은 베스트 프랙티스에 가깝습니다.리스트는 동질적인 시퀀스인 반면 튜플은 이질적인 데이터 구조로 사용해야 합니다.

리스트는 동종 시퀀스로 되어 있는 반면, 튜플은 이종 데이터 구조입니다.

여기에서도 이미 답변이 있었으니까tuples동안 불변하다lists변이할 수 있지만, 우리가 기억해야 할 튜플의 사용에는 한 가지 중요한 측면이 있다.

이 경우,tuple를 포함합니다.list또는dictionary그 안에서, 그것들은 바뀔 수 있다.tuple그 자체는 불변이다.

예를 들어 목록과 사전이 포함된 튜플이 있다고 가정합니다.

my_tuple = (10,20,30,[40,50],{ 'a' : 10})

리스트의 내용을 다음과 같이 변경할 수 있습니다.

my_tuple[3][0] = 400
my_tuple[3][1] = 500

새로운 태플은 마치

(10, 20, 30, [400, 500], {'a': 10})

우리는 또한 태플 안에 있는 사전을 바꿀 수 있다.

my_tuple[4]['a'] = 500

전체적인 태플은 마치...

(10, 20, 30, [400, 500], {'a': 500})

이 일이 발생하는 이유는list그리고.dictionary오브젝트 및 오브젝트는 변경되지 않지만 그 오브젝트가 가리키는 콘텐츠입니다.

그래서...tuple예외 없이 불변으로 남다

PEP 484 -- Type Hents 에는, 다음의 요소의 타입이 기재되어 있습니다.tuple개별적으로 입력할 수 있습니다.그렇게 하면Tuple[str, int, float]하지만list,와 함께Listtyping class에는 다음 한 가지 유형 파라미터만 사용할 수 있습니다.List[str]이는 두 개의 차이가 실제로 전자는 이질적인 반면 후자는 본질적으로 동질적이라는 것을 암시한다.

또한, 표준 라이브러리는 대부분 C가 반환하는 표준 함수로부터의 반환값으로 태플을 사용합니다.struct.

사람들이 이미 차이점을 언급했으므로 나는 왜 배가 나오는지에 대해 쓸 것이다.

왜 튜플이 선호되는가?

작은 튜플에 대한 할당 최적화

메모리 단편화를 줄이고 할당 속도를 높이기 위해 Python은 오래된 튜플을 재사용합니다.태플이 더 이상 필요하지 않고 20개 미만의 항목이 있는 경우 Python은 해당 항목을 자유 목록으로 이동합니다.

프리 리스트는 20개의 그룹으로 분할되며 각 그룹은 길이 n이 0에서 20 사이인 튜플 리스트를 나타냅니다.각 그룹은 최대 2,000개의 튜플을 저장할 수 있습니다.첫 번째(0) 그룹은 1개의 요소만 포함되며 빈 태플을 나타냅니다.

>>> a = (1,2,3)
>>> id(a)
4427578104
>>> del a
>>> b = (1,2,4)
>>> id(b)
4427578104

위의 예에서는 a와 b의 ID가 같은 것을 알 수 있습니다.그것은 바로 무료 목록에 있던 파괴된 태플을 점령했기 때문입니다.

목록에 대한 할당 최적화

목록을 수정할 수 있기 때문에 Python은 tuples와 동일한 최적화를 사용하지 않습니다.그러나 Python 목록에는 무료 목록도 있지만 빈 개체에만 사용됩니다.빈 목록이 삭제되거나 GC에 의해 수집되면 나중에 다시 사용할 수 있습니다.

>>> a = []
>>> id(a)
4465566792
>>> del a
>>> b = []
>>> id(b)
4465566792

출처 : https://rushter.com/blog/python-lists-and-tuples/

왜 튜플이 목록보다 효율적일까요?-> https://stackoverflow.com/a/22140115

가장 중요한 차이는 시간이다! 목록 내의 데이터를 태플을 사용하기 위해 더 잘 바꾸고 싶지 않을 때! 여기 태플을 사용하는 예가 있다!

import timeit
print(timeit.timeit(stmt='[1,2,3,4,5,6,7,8,9,10]', number=1000000)) #created list
print(timeit.timeit(stmt='(1,2,3,4,5,6,7,8,9,10)', number=1000000)) # created tuple 

이 예에서는 두 문장을 모두 100만 번 실행했습니다.

출력:

0.136621
0.013722200000000018

누구나 시차를 분명히 알 수 있다.

5.3에 기재되어 있는 문서의 방향 인용. 튜플시퀀스:

튜플은 목록과 비슷해 보일 수 있지만 다른 상황에서 다른 목적으로 사용되는 경우가 많습니다.튜플에는 불변성이 있으며, 통상, 패키지 해제(이 섹션의 후반부 참조) 또는 인덱스 작성(또는 명명된 튜플의 경우 속성별)을 통해 액세스되는 이기종 요소의 시퀀스가 포함됩니다.리스트는 변경 가능하며, 그 요소는 보통 균질하며 리스트 상에서 반복하여 접근합니다.

즉, TUPLES는 그룹의 내용/구성원이 변경되지 않는 요소 그룹을 저장하는 데 사용되며 LISTs는 그룹의 구성원을 변경할 수 있는 요소 그룹을 저장하는 데 사용됩니다.

예를 들어 네트워크 IP를 변수에 저장하는 경우 IP가 고정되어 있으므로 태플을 사용하는 것이 가장 좋습니다.이것처럼.my_ip = ('192.168.0.15', 33, 60)단, 향후 6개월 이내에 방문할 장소의 IP 그룹을 저장하고 싶다면 LIST를 사용해야 합니다.그것은 계속 갱신하고 새로운 IP를 그룹에 추가할 것이기 때문입니다.이것처럼.

places_to_visit = [
    ('192.168.0.15', 33, 60), 
    ('192.168.0.22', 34, 60), 
    ('192.168.0.1', 34, 60), 
    ('192.168.0.2', 34, 60), 
    ('192.168.0.8', 34, 60), 
    ('192.168.0.11', 34, 60)
] 

우선 Python에서는 둘 다 비스칼라 객체(복합 객체라고도 함)입니다.

  • 튜플, 요소의 순서 순서(에일리어싱 문제가 없는 모든 개체를 포함할 수 있음)
    • 불변(태플, 인트, 플로트, 스트)
    • 를 사용한 연결+(물론 새로운 태플이 생성됩니다.)
    • 색인화
    • 슬라이스
    • 싱글턴(3,) # -> (3)대신(3) # -> 3
  • 목록(다른 언어의 배열), 순서 있는 값 순서
    • 변이 가능
    • 싱글턴[3]
    • 클로닝new_array = origin_array[:]
    • 리스트 이해[x**2 for x in range(1,7)]주다[1,4,9,16,25,36](읽을 수 없음)

목록을 사용하면 에일리어싱 버그(같은 개체를 가리키는2개의 다른 경로)가 발생할 수도 있습니다.

의 간단한 확장입니다.list tuple응답:

  • 역동적인 성격 때문에list는 실제 필요한 메모리보다 많은 비트버킷을 할당합니다.이는 향후 추가 항목이 추가될 경우 비용이 많이 드는 재할당 작업을 방지하기 위해 수행됩니다.

  • 한편, 정적인, 경량.tuple개체는 개체를 저장하는 데 필요한 추가 메모리를 예약하지 않습니다.

리스트는 가변이며 튜플은 불변입니다.이 예를 생각해 보세요.

a = ["1", "2", "ra", "sa"]    #list
b = ("1", "2", "ra", "sa")    #tuple

이제 목록과 태플의 인덱스 값을 변경합니다.

a[2] = 1000
print a     #output : ['1', '2', 1000, 'sa']
b[2] = 1000
print b     #output : TypeError: 'tuple' object does not support item assignment.

따라서 다음 코드가 튜플에서는 유효하지 않음을 증명했습니다.이는 허용되지 않는 튜플 갱신을 시도했기 때문입니다.

리스트는 변경할 수 있습니다.반면에 튜플은 불변이다.요소 및 해당 색인은 변경할 수 없으므로 인덱스를 사용하여 오프셋 요소에 액세스하는 것이 목록보다 튜플에서 더 적합합니다.

리스트는 가변적이고 튜플은 불변합니다.변경 가능과 불변의 주요 차이점은 항목을 추가할 때 메모리 사용량입니다.

변수를 생성하면 일부 고정 메모리가 변수에 할당됩니다.리스트의 경우는, 실제로 사용되고 있는 메모리보다 많은 메모리가 할당됩니다.예를 들어 현재 메모리 할당이 100바이트인 경우 101번째 바이트를 추가할 때 100바이트가 추가로 할당될 수 있습니다(이 경우 총 200바이트).

그러나 새 요소를 자주 추가하지 않는 경우에는 튜플을 사용해야 합니다.튜플은 필요한 메모리의 크기를 정확하게 할당하기 때문에 특히 대용량 메모리 블록을 사용하는 경우 메모리를 절약할 수 있습니다.

여기서의 많은 코멘트와 함께, 튜플의 사용에 있어서의 메리트는, 리스트와 달리 다른 타입의 값을 가질 수 있는 유연성입니다.

예를 들어 각 열에 대해 다른 값과 유형이 지정된 데이터베이스 테이블을 예로 들어 보겠습니다.목록에서는 이를 전혀 복제할 수 없습니다(포함할 수 있는 단일 유형의 값으로 제한됨). 반면 Tuple은 각 열에 대한 위치를 고려하여 여러 다른 유형과 값을 가질 수 있습니다(또한 데이터베이스의 가상 표현을 만드는 목록 내에 배치할 수도 있습니다).

이러한 유연성과 제약(값은 변경할 수 없기 때문에)은 트랜잭션 데이터의 전송(또는 표의 형식과 유사한 것)에도 이점이 있습니다.튜플의 데이터를 '봉인'하여 수정할 수 없도록 한 후 설계한 보호 기능을 통해 데이터를 보호합니다.즉, 불변성을 제공합니다.읽기 전용 컬렉션과 비교하면 어떤 차이가 있습니까?다른 값 유형을 가질 수 있다는 사실.

(일반적으로 목록, 오브젝트 및 사전을 많이 사용하기 때문에) 일반적으로 오브젝트 모델이 더 나은 옵션으로 기능할 수 있다고 생각하는 사람들로 인해 응용이 제한되지만(특정 경우에는 그러합니다), 그러나 오브젝트 모델은 비즈니스 모델로 정의한 것과 분리되는 것을 선호하기 때문에 원하지 않는다고 말합니다.ess 엔티티.그러면 태플은 당신이 성취하려고 하는 것에 도움이 될 것이다.

언급URL : https://stackoverflow.com/questions/626759/whats-the-difference-between-lists-and-tuples

반응형