> 백엔드 개발 > 파이썬 튜토리얼 > Python 입문 학습 데이터 구조

Python 입문 학습 데이터 구조

黄舟
풀어 주다: 2016-12-16 16:33:00
원래의
1039명이 탐색했습니다.

1 변수

Python의 변수는 C/C++의 변수와 다릅니다. c/C++에서는 변수의 본질이 메모리 주소인데, 파이썬에서는 변수를 정의하고 값을 할당하면 다음과 같습니다.

a='ABC'

Python 인터프리터는 두 가지 작업을 수행합니다. (1) 메모리에 'ABC' 문자열을 만듭니다. (2) 메모리에 a라는 변수를 만들고 'ABC'를 가리킵니다. 즉, Python은 c/C++보다 더 많은 메모리를 차지합니다. 여기서는 Python에서 변수 정의를 올바르게 처리해야 합니다.

2 인코딩

인코딩 문제에는 역사적 요인이 관련되어 있습니다. 컴퓨터가 미국에서 처음 제조되었기 때문에 처음에는 일반적으로 사용되는 127개의 문자만 컴퓨터에 인코딩되었으며, 이는 ASCII 코드였습니다. 하지만 이후 개발에서는 중국어와 같은 문자를 처리해야 하는데 이때 1바이트로는 부족해 최소 2바이트 이상을 사용해야 한다. 세상의 모든 언어를 처리하기 위해 이 문제를 해결하기 위해 유니코드가 발명되었습니다. 유니코드는 일반적으로 문자를 나타내기 위해 2바이트를 사용하며 일부 원격 문자는 4바이트를 사용해야 할 수도 있습니다.

유니코드의 도입으로 다국어의 인코딩 문제는 해결되었으나 여전히 자원 낭비가 남아있습니다. 유니코드 인코딩을 균일하게 사용하는데 텍스트가 모두 영어로 되어 있다면 메모리 낭비가 크지 않을까요? 이 문제를 해결하기 위해 나중에 UTF-8 인코딩이 도입되었습니다. UTF-8 인코딩에서는 문자가 차지하는 바이트 수에 따라 유니코드 문자가 할당됩니다. 예를 들어 영어 문자는 1바이트로 인코딩되고, 중국어 문자는 일반적으로 3바이트로 인코딩됩니다. 이렇게 하면 많은 메모리를 절약할 수 있습니다.

3개의 리스트와 튜플

리스트와 튜플은 모두 Python에 내장된 데이터 유형입니다. 차이점은 튜플이 초기화되면 변경할 수 없다는 것입니다. 다음과 같이 목록을 정의하세요.

#define a list
l=['Michael','Luffy','Nancy']

목록은 순서가 지정된 컬렉션입니다. c/C++의 배열에서 아래 첨자는 0부터 시작하며 요소는 언제든지 추가하고 삭제할 수 있습니다. 목록에서 수행할 수 있는 작업은 추가(), 삽입(), 팝() 및 []입니다.

물론 목록은 다음과 같이 중첩될 수 있습니다.

#define a 중첩 목록
l=['Michael','Luffy','Nancy', ['Corey' ,'Jason']]

아래와 같이 초기화 중에 튜플에 값을 할당해야 합니다.

#define a tuple
t=('Michael',' Luffy' ,'Nancy')

여기서는 튜플의 불변성에 대해 설명해야 합니다. 튜플의 불변성은 해당 요소를 "가리키는" 용도로만 사용됩니다. 예를 들어 위의 예에서 튜플은 각각 'Michael', 'Luffy' 및 ​​'Nancy'를 가리킵니다. 정의 후에는 항상 이러한 문자열을 가리킬 수 없습니다.

"불변"의 진정한 의미를 이해하면 내용이 변경될 수 있는 튜플을 정의할 수 있습니다. 다음과 같습니다:

#변경 가능한 튜플 정의
t=('Michael','Luffy','Nancy',['Corey','Jason'])
t[3][ 0 ]='Jefrey'
t[3][1]='Avery'

위 코드에서 볼 수 있듯이 먼저 t라는 튜플을 정의합니다. 데이터를 수정한 후 초기화 중에 가리키는 목록은 수정되지 않지만 목록의 내용은 변경됩니다. 이는 Python의 경우 허용됩니다.

IV dict

Python의 dict는 키/값 쌍으로 구성된 구조인 c/C++의 맵입니다. dict에 대해 주의해야 할 것은 핵심 요구 사항입니다. dict에서는 키가 불변 객체여야 합니다. 이는 dict가 키를 기준으로 Value의 저장 위치를 ​​계산하기 때문입니다. 매번 동일한 키를 계산하고 결과가 달라지면 dict 내부에서 이 키를 통해 위치를 계산하는 알고리즘을 호출합니다. 해시 알고리즘.

Python에서 문자열과 정수는 변경할 수 없는 객체인 반면, 목록은 변경 가능하며 키로 사용할 수 없습니다.

5 포스트 스크립트

위 내용은 Python 개인 학습 내용을 요약한 내용입니다. 오류가 있으면 메시지를 남겨주세요! ! !

위 내용은 Python 입문학습을 위한 자료구조 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿