Python 프로그래밍 배우기 — 복합 데이터 유형 소개 : 집합 및 튜플

@kokilsh https://www.pexels.com/@kokilsh의 사진 크레딧

Python의 복합 데이터 유형을 자세히 살펴 보겠습니다. 세트와 튜플을 사용하면 더 풍부하고 표현력이 풍부한 프로그램을 빌드하고 사용할 수 있습니다.

Python의 데이터 유형 설정

이전 기사 에서 set복합 데이터 유형 을 소개했습니다 . 집합은 공통점을 공유하는 정렬되지 않은 개체 모음입니다.

다음은 루프 문 set에 전달하여 반복 할 수있는입니다 for.

set데이터 유형은 몇 가지 놀라운 기능을 가지고! 이것은 수학집합 이론 분파 에서 직접 파생됩니다 . 벤 다이어그램에 대해 이미 알고있는 것에서 가장 익숙 할 것입니다.

두 개의 교차 세트의 벤 다이어그램.

일련의 집합을 만들고 Python에서 어떻게 작동하는지 살펴 보겠습니다.

내 코드 편집기에서 다음을 볼 수 있습니다.

여기서 무슨 일이 일어나고 있습니까?

  • 1, 2, 3 행에서 각각 관련 요소를 포함 set하는 :set유형 힌트를 사용하여 정의합니다 . (식물 학자라면 쏘지 마세요. 최선을 다하고 있습니다!).
  • 6 행에서 intersectionof treefruit및을 인쇄 하고 cirtusfruit있습니다. 두 세트 모두에 나타나는 모든 요소를 ​​반환합니다.
  • 12 행과 13 행에서도 교차로를 인쇄하고 있습니다.
  • 15 행 union에서 두 세트의 모든 요소를 ​​새 세트로 결합했습니다.
  • 라인 18에 나는를 찾는거야 difference-의 어떤 stonefruittreefruit없습니다 citrusfruit.

Python set집합 이론을 기반으로 하기 때문에 프로그래머는 여러 컬렉션에서 요소의 멤버 자격을 테스트하거나 단순히 컬렉션에서 중복을 제거하는 쉬운 방법으로 집합을 사용합니다.

Python은 또한 frozenset복합 데이터 유형을 제공 합니다. Frozensets는 discard()예를 들어를 사용하여 요소를 수정할 수 없습니다 .

set () 생성자

지금까지 우리는 새로운 세트를 만들기 위해 중괄호 만 사용했습니다.

citrusfruit:set = {"oranges", "lemons", "limes", "satsumas", "nectarines"}

characters:set = set("The quick brown fox jumped over the lazy dog.")
print(len(characters))

Python의 튜플 데이터 유형

tuple복합 데이터 유형은 전체에서는, 형성하는 것으로 간주되며, 하나 이상의 콤마로 분리 소자가 포함 기록 . 프로그래머는 단일 값으로 무언가를 식별하기에 충분하지 않을 때 종종 튜플을 사용합니다. 집 주소처럼! 컴퓨터 과학에서 우리는 공식적으로 다음과 같이 말할 수 있습니다. 집 개체의 신원은 그 속성 (도로명, 집 번호, 도시, 우편 번호, 국가)으로 구성 됩니다. 집의 정체성에 대한이 5 가지 속성은 주소 인 5 개의 요소가있는 튜플에서 쉽게 사용할 수 있습니다.

이전 버전에서 우리는 위도와 경도를 사용하여 지구 표면에있는 한 지점의 지리적 위치를 나타내는 두 요소가있는 튜플을 사용하는 것을 고려했습니다.

geolocation = (48.858093, 2.294694) #The Eiffel Tower

를 만든 후에는 index를tuple 사용하여 요소에 액세스 할 수 있습니다 . 인덱스는 항상 0에서 시작하며 항상와 같은 변수에 작용하는 대괄호를 사용하여 표시됩니다 .geolocation[0]

>>> geolocation = (48.858093, 2.294694) #The Eiffel Tower
>>> print(f"Latitude: {geolocation[0]} Longitude: {geolocation[1]}")
Latitude: 48.858093 Longitude: 2.294694

>>> geolocation[0] = 50.0000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

내 코드 편집기에서 다음과 같이 보입니다.

튜플을 집합 (중복을 잃음)으로 변환하거나 집합을 튜플로 변환하는 것은 정말 간단합니다.

내 코드 편집기에서 이것을 실행하면 다음을 얻습니다.

여기서 무슨 일이 일어나고 있습니까?

  • 1 행에서 우리는 geolocation이라는 변수를 정의했으며 이것이 tuple이 될 것이라는 것을 암시합니다 geolocation:tuple. 일반 대괄호를 사용하여 튜플 요소의 쉼표로 구분 된 목록을 만듭니다. 두 요소의 값이 동일합니다.
  • 2 행에서 students라는 변수를 정의했으며 이것이 집합이 될 것이라고 암시합니다. 중괄호를 사용하여 집합 요소의 쉼표로 구분 된 목록을 만듭니다.
  • 4 행에서 우리 set()geolocation튜플을 인자로 하는 함수를 사용합니다 . set고유 한 값이 하나 뿐인 새 항목을 인쇄합니다 . 출력은 중괄호를 사용하여 이것이 set.
  • 5 행에서 우리 tuple()는 학생과 함께 함수를 set인수로 사용합니다. 우리는 new를 인쇄합니다 tuple. 여기에는 set. 출력은 일반 대괄호를 사용하여 tuple.

Note
The Python runtime does not enforce function and variable type annotations. They can be used by third party tools such as type checkers, IDEs, linters, etc.

색상의 이름과 RGB 값을 지정하는 방법에 익숙 할 것입니다. 다음은 일반적인 HTML 색상 이름 과 16 진수 표기법을 사용하는 RGB 값에 대한 편리한 표입니다 . 튜플을 사용하여 이것을 Pythonic으로 만들어 봅시다!

내 코드 편집기에서 다음과 같이 출력됩니다.

여기서 무슨 일이 일어나고 있습니까?

  • 무엇보다 먼저 21 행의 오타를 확인하십시오. 저는 "Name"이 아니라 "Nane"을 썼습니다. 모두가 실수를합니다! 나를 위해 그것을 고치십시오;)
  • 1 행에서 collections모듈을 다시 가져옵니다 . 나는 그것을 좋아하게 성장했다!
  • 3 번과 4 번 줄에서 두 개의 새로운 namedtuple을 정의합니다. 또한 index [1]의 이름이 "rgbvalue"로 지정됩니다. 이 인덱스에서 우리는 전체 튜플을 tuple.
  • 6 set행에서 우리는 다음에 정의 할 모든 튜플을 저장할 a 를 정의합니다 .
  • 8, 11, 14, 17 행에서라는 변수를 만듭니다 htmltuple. namedtuple이 변수에 새로운 것을 할당 합니다. 생성자를 호출하고 htmlcolour원하는 값을 전달 하여 튜플 값을 만듭니다 . 첫 번째 인수는 색상의 이름을 포함합니다. 두 번째 인수에는 new가 포함되며 namedtuple이번에는 rgbvalue namedtuple3 행에 정의 된에서 생성됩니다 .
  • 인덱스 대신 red =, blue = 및 green =을 사용하고 있습니다. 또한 명명 된 인덱스를 사용하는 것이 잘 작동 함을 증명하기 위해 순서를 약간 변경했습니다.
  • RGB 값이 16 진수 시스템을 사용한다는 것을 알았습니다. 16 진수 FF는 10 진수 255와 같습니다. Python에서는 16 진수 값에 기호 접두사를 붙여서 직접 사용할 수 있습니다 0x.
  • 9, 12, 15, 18 행에서라는 집합에 새 튜플을 추가합니다 colours.
  • 21 ~ 25 행에 사용자 친화적 인 정보 (색상 집합의 각 요소에 대해)를 인쇄하고 있습니다. 이 줄은 편집자에게 너무 길어서 여러 F-String을 사용하여 더 작은 줄로 나누었습니다.
  • 점 표기법 colour.rgbvalue.blue을 사용 하여 튜플을 더 깊이 파고 드는 것에 주목 하십시오. colour[1][2] 파란색의 가치에 도달하기 위해 작성 하는 것보다 이것이 프로그래머에게 더 친숙하다고 생각합니다 !

정말 많이! 당신이 여기까지왔다면 당신은 당신의 성취를 정말 자랑스럽게 생각할 것입니다! 즐겁게 지내시 길 바랍니다.

  • 집합과 튜플에 대해 다시 논의했습니다.
  • 우리는 새 객체를 만드는 데 사용되는 생성자를 고려했습니다 .
  • 우리 는 수정 가능 여부를 알려주는 객체의 속성 인 변경 가능성을 고려 했습니다.
  • 우리는 유용한 힌트에 불과하다는 점에 주목하면서 타입 힌트를 살펴 보았습니다 .
  • 데이터 유형 frozenset의 변경 불가능한 변형 인을 살펴 보았습니다 set.
  • 우리는 튜플의 특정 요소를 얻기 위해 인덱스를 사용하는 방법을 탐색했습니다.
  • namedtuple더 읽기 쉬운 방식으로 튜플을 작성 하기 위해 데이터 유형을 사용했습니다 .
  • 우리는 세트와 튜플 간의 캐스팅 또는 변환 에 대해 배웠습니다 .

지금까지이 시리즈의 기사 :

Suggested posts

좋은 습관을 만들고 유지하는 방법

장기적인 습관을 유지하기위한 생산성 팁

좋은 습관을 만들고 유지하는 방법

두 아이의 엄마가 된 후 일을 끝내기가 더 어려워졌습니다. 나는 한 작업에서 다음 작업으로 뛰어 들었고 하루가 끝날 때까지 아무것도하지 않았을 때 실망했습니다.

양자 컴퓨팅 Pt를위한 프로그래밍. 1 : NumPy

이제 양자 컴퓨팅이면의 물리학을 배우기 시작 했으므로 "이봐, 실제로 양자 컴퓨터를 사용하려면 실제로 양자 장치를 손으로 만들어야합니까?"라고 궁금해 할 것입니다. 답은 양자 컴퓨터를 컴퓨터라고 부르는 이유가 있습니다. 프로그래밍이 가능합니다! 이 시리즈에서는 수학 개념을 시뮬레이션하고 양자 컴퓨터에서 실행하는 소프트웨어를 구축하는 방법을 배우게됩니다. 깨끗하고 현대적이며 라이브러리가 풍부한 언어이기 때문에 Python을 사용하여 코드를 작성할 것입니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.