type - python3 strip




유용한 튜플은 무엇입니까? (6)

나는 항상 두 개 이상의 객체를 하나의 세트로 다룰 때 유용하다는 것을 알게되었습니다.

나는 클래스를 위해 파이썬을 배우고 있으며, 튜플을 데이터 타입 중 하나로 다루었습니다. 나는 위키 피 디아 페이지를 읽었지만, 그런 데이터 유형이 실제로 어디에서 유용 할 지 알 수 없었다. 파이썬에서 아마도 숫자가 필요없는 몇 가지 예가있을 수 있습니까? 목록과 다른 점은 무엇입니까?


목록은 기능과 관련하여 항상 튜플을 대체 할 수 있습니다 (분명히 말해서 dict의 키로는 제외). 그러나 튜플을 사용하면 빠르게 작업 할 수 있습니다. 예를 들어 Java의 변경 불가능한 문자열에 대해서도 마찬가지입니다. 언제 문자열을 변경할 수 없게 될 필요가 있습니까? 못!

방금 더 나은 프로그램을 만들기 위해 할 수있는 일을 제한하는 것에 관해 괜찮은 토론을 읽었습니다. 기능 프로그래밍이 중요한 이유


튜플은 두 개 이상의 데이터를 키에 결합해야 할 때 좋은 사전 키를 만들고 클래스를 만드는 느낌이 들지 않습니다.

a = {}
a[(1,2,"bob")] = "hello!"
a[("Hello","en-US")] = "Hi There!"

필자는이 기능을 주로 메쉬의 꼭짓점 좌표 인 키를 사용하여 사전을 만드는 데 사용했습니다. 그러나, 나의 특별한 경우에, 관련된 수레의 정확한 비교가 잘 작동했는데, 이것은 항상 당신의 목적에 맞지는 않을 것입니다. [어떤 경우에는 들어오는 수레를 일종의 고정 소수점 정수로 변환 할 것입니다]


튜플은 여러 값을 저장하는 데 유용합니다. 튜플은 변경 불가능한 목록과 같습니다. 예를 들어 한 번 작성된 요소는 추가 / 제거 / 교환 할 수 없습니다.

변경할 수없는 한 가지 이점은 튜플이 고정 크기이기 때문에 런타임에서 특정 최적화를 수행 할 수 있다는 것입니다. 이는 반환 값이나 함수의 매개 변수와 관련하여 터플이 사용되는 경우 특히 유용합니다.


나는 이 설명을 좋아 한다 .

기본적으로, 구조가 일정 할 때는 튜플을 사용해야합니다 (첫 번째 위치는 항상 한 가지 유형의 값을 보유하고 두 번째 위치는 다른 등등을 유지함). 동질 값의 목록에는 목록을 사용해야합니다.

물론 항상 예외가 있지만 이것은 좋은 일반 지침입니다.


% operation과 같은 구문 적으로 필요한 곳과 여러 개의 반환 값에 대해 튜플을 경량 클래스의 한 형태로 사용합니다. 예를 들어, 한 메소드의 호출자에게 불투명 한 쿠키를 전달한 다음 다른 메소드로 전달되는 객체가 있다고 가정하십시오. 튜플은 쿠키를 포함 할 별도의 클래스를 정의하지 않고도 여러 값을 해당 쿠키에 압축하는 좋은 방법입니다.

나는이 특별한 용도에 대해 신중히하려고 노력한다. 쿠키가 코드 전반에 걸쳐 자유롭게 사용된다면 클래스를 만드는 것이 좋습니다. 왜냐하면 쿠키를 사용하는 것을 문서화하는 데 도움이되기 때문입니다. 그것들이 한 곳에서만 사용된다면 (예를 들어, 한 쌍의 메소드) 튜플을 사용할 수 있습니다. 어쨌든 파이썬이기 때문에 튜플로 시작한 다음 호출자의 코드를 변경하지 않고도이를 사용자 정의 클래스의 인스턴스로 변경할 수 있습니다.







tuples