파이썬: 데이터 유형

JavaScript에서 나온 Python에는 큰 표준 라이브러리가 있고 선택하기 쉽기 때문에(특히 사전 프로그래밍 지식이 있는 경우) Python을 배우는 것이 신선합니다. 데이터 유형부터 시작하여 Python의 몇 가지 멋진 기능과 내가 본 흥미로운 차이점을 강조하고 싶습니다. 따라서 이것이 완전한 가이드나 둘의 비교가 될 것이라고 기대하지 마십시오.

아래 지침을 시도하려면 Python REPL을 실행할 수 있습니다. Python이 설치된 경우 터미널에서 실행python하십시오. >>> 기호로 시작하는 모든 Python 코드는 REPL에 입력되었음을 나타냅니다.

도우미 함수



Python 자체에는 유형을 정의하고 발견하는 데 도움이 되는 유용한 기능이 있습니다. type() , dir() , help() 입니다.

>>> name = "Lennart"
>>> type(name)
<class 'str'>
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> help(str.title)
Help on method_descriptor:

title(self, /)
    Return a version of the string where each word is titlecased.

    More specifically, words start with uppercased characters and all remaining
    cased characters have lower case.


번호



Python에는 숫자 작업을 위한 보다 명시적인 유형이 있습니다. JavaScript에서는 Number 로 함께 매쉬됩니다.

>>> x = 4
>>> y = 5.0
>>> z = 42j
>>> type(x)
<class 'int'>
>>> type(y)
<class 'float'>
>>> type(z)
<class 'complex'>


튜플



튜플은 관련되지만 다른 항목을 추적하는 데 사용할 수 있는 변경할 수 없는 컬렉션입니다. 따라서 setdict 에서 불변 키로 훌륭합니다. 언패킹은 튜플에서 정보를 빠르게 얻는 방법입니다:

>>> favourite_food = ("Italian", "Pizza")
>>> cuisine, name = favourite_food
>>> cuisine
'Italian'
>>> name
'Pizza'


세트



세트는 변경 가능하고 변경 불가능한 유형을 정렬되지 않은 방식으로 저장합니다. list , set 또는 dict 와 같은 다른 변경 가능한 유형을 저장할 수 없습니다. 세트에는 고유한 항목만 포함될 수 있습니다.

목록을 빠르게 중복 제거하는 데 유용합니다.

>>> names = ["Luke", "Leia", "Malak", "Luke"]
>>> set(names)
{'Leia', 'Luke', 'Malak'}


세트( .add 또는 .discard 등)에서 몇 가지 돌연변이를 실행할 수 있지만 한 번에 여러 값을 추가할 수 있기 때문에 확실히 .update 흥미롭습니다.

>>> chars = {"James", "Naomi", "Amos"}
>>> addition = {"Alex", "Julie"}
>>> chars.update(addition)
>>> chars
{'Julie', 'James', 'Naomi', 'Alex', 'Amos'}


또 다른 멋진 점은 set 연산 -- 합집합과 교집합입니다.

>>> chars = {"James", "Naomi", "Amos"}
>>> favourite_chars = {"James"}
>>> chars | addition
{'Julie', 'James', 'Naomi', 'Alex', 'Amos'}
>>> chars & favourite_chars
{'James'}


사전



사전은 변경 가능하고 키:값 쌍을 저장합니다(키는 변경 불가능한 유형일 수만 있음). 따라서 검색하는 것이 매우 빠릅니다. 표준 항목 외에도 세 가지 유용한 방법이 있습니다. keys() , values() , items() :

>>> chars = { "expanse": "Holden", "star_wars": "Luke" }
>>> chars.keys()
dict_keys(['expanse', 'star_wars'])
>>> chars.values()
dict_values(['Holden', 'Luke'])
>>> chars.items()
dict_items([('expanse', 'Holden'), ('star_wars', 'Luke')])


이러한 함수만으로는 많은 작업을 수행하지 못하지만 for 루프에서 매우 유용할 수 있습니다.

>>> for franchise, char in chars.items():
...     print(f"The char {char} exists in the franchise {franchise}")
...
The char Holden exists in the franchise expanse
The char Luke exists in the franchise star_wars

items() 튜플 목록을 반환하기 때문에 튜플 압축 해제를 사용하여 두 값을 모두 얻을 수 있습니다.

좋은 웹페이지 즐겨찾기