본문 바로가기

프로그래밍

[파이썬 기초 5] - Python Built-In Classes[list, tuple, str]

[파이썬 기초 5] - Python Built-In Classes


list, tuple 및 str 클래스는 Python의 시퀀스 유형으로

순서가 중요한 값의 집합을 나타냅니다. 

 목록 클래스는 임의 개체(다른 언어의 "어레이"에 해당)의 시퀀스를 나타내는 가장 일반적인 클래스입니다. 튜플 클래스는 목록 클래스의 불변 버전이며, 내부 표현을 간소화할 수 있습니다. str 클래스는 텍스트 문자의 고정되지 않는 시퀀스를 나타내도록 특별히 설계되었습니다. Python에는 별도의 문자 클래스가 없으며, 길이가 1인 문자열일 뿐입니다.

 

 


Built-in Class


The list Class

list 인스턴스(instance)는 객체 시퀀스를 저장합니다. list은 해당 요소에 대한 일련의 참조를 기술적으로 저장하기 때문에 참조 구조입니다. list의 요소는 임의 개체(None)일 수 있습니다. list은 배열 기반 시퀀스이며 인덱싱이 0이므로 길이 n의 list에는 0에서 n-1까지 인덱싱된 요소가 있습니다. list은 Python에서 가장 많이 사용되는 컨테이너 유형일 수 있으며 데이터 구조 및 알고리즘 연구에 매우 중요한 자료가 될 것입니다. 필요에 따라 용량을 동적으로 확장하고 축소할 수 있는 기능 등 여러 가지 가치 있는 행동이 있습니다.  Python은 [ ] 문자를 list 리터럴의 구분자로 사용하고,

[ ] 자체는 빈 list입니다.

또 다른 예로 [빨간색, 녹색, 파란색 ]은 세 개의 문자열 인스턴스를 포함하는 list입니다.

ref. Data Structures and Algorithms

The tuple Class

 

튜플 클래스는 시퀀스의 불변 버전을 제공하므로, 해당 인스턴스는 목록의 그것보다 더 능률적인 내부 표현을 가질 수 있습니다. Python은 [ ] 문자를 사용하여 목록을 구분하는 반면 괄호는 튜플을 구분하며, ( )은 빈 튜플입니다. 중요한 미묘함이 하나 있습니다. 길이 1의 튜플을 리터럴로 표현하려면 요소 뒤에 쉼표를 배치해야 하지만 괄호 안에 넣어야 합니다. 예를 들어, (17,)는 하나의 요소 튜플입니다. 이 요구 사항의 이유는 후행 쉼표가 없으면 식(17)을 단순 괄호화된 숫자 식으로 보기 때문입니다.

 

The str Class

Python의 str 클래스는 유니코드 국제 문자 집합에 기반하여 불변의 문자열을 효율적으로 표현하도록 특별히 설계되었습니다. 문자열의 내부 표현은 참조 목록 및 튜플보다 작습니다.

 

문자열 리터럴은 hello에서처럼 작은 따옴표로 묶거나 "hello"에서처럼 큰 따옴표로 묶을 수 있습니다. 이 선택사항은 특히 "걱정하지 마세요"와 같이 따옴표 문자 중 다른 문자를 시퀀스에서 실제 문자로 사용할 때 편리합니다. 또는 따옴표 구분 기호는 Don\\t 걱정에서처럼 소위 이스케이프 문자로 백슬래시를 사용하여 지정할 수 있습니다. 백슬래시(\)는 이러한 목적이 있기 때문에, C:\\에서와 같이 문자열 리터럴의 자연문자로 발생하려면 백슬래시 자체를 이스케이프해야 합니다. 일반적으로 이스케이프되는 다른 문자는 뉴라인용이고 \t는 탭용입니다. Python은 구분 기호 사용 또는 문자열 리터럴 시작 및 종료도 지원합니다. 이러한 세 개의 따옴표(""")로 묶인 문자열의 이점은 뉴라인 문자를 자연스럽게 삽입할 수 있다는 것입니다. 이렇게 하면 소스 코드에서 긴 멀티라인 문자열의 가독성이 크게 향상될 수 있습니다.

 

a ="""
hello
this 
is one string

really???!
"""