중화사전망 - 자전 검색 - Dict 형식 사전
Dict 형식 사전
파이썬 언어는 간단하고 명료하며, 더 적은 코드로 같은 기능을 할 수 있다. Python 의 네 가지 내장 데이터 유형 (list, tuple, dict, set) 은 각각 list, tuple, dict, set 입니다. 다음은 이에 대한 간략한 요약입니다.
카탈로그
글자 그대로 한 세트를 뜻한다. 파이썬에서 목록의 요소는 괄호 [] 로 표시되며 목록은 다음과 같이 정의할 수 있습니다.
L = [12,' 중국', 19.998]
요소의 유형이 같을 필요는 없다는 것을 알 수 있습니다. 물론 빈 목록을 정의할 수도 있습니다.
L = []
파이썬의 목록은 순차적이므로 목록에 액세스하려면 배열의 아래 첨자처럼 0 부터 시작하는 일련 번호로 액세스해야 합니다.
& gt& gt& gt 인쇄 l [0]
12
절대 국경을 넘지 마라, 그렇지 않으면 너는 잘못을 보고할 것이다.
& gt& gt& gt 인쇄 l [3]
역추적 (최근 호출):
파일' < 표준 가져오기', 1 행, in< 모듈>
인덱스 오류: 목록 인덱스가 범위를 벗어났습니다
리스트는 반대 순서로 액세스할 수도 있습니다. 일련 번호는 아래 첨자로 표시됩니다 (예: "맨 아래에서 시작하는 x"). 예를 들어 아래 첨자-1 은 끝에서 첫 번째 요소를 나타냅니다.
& gt>>l = [12,' 중국', 19.998]
& gt& gt& gt 인쇄 l [-1]
19.998
-4 분명히 엉뚱하다.
& gt& gt& gt 인쇄 l [-4]
역추적 (최근 호출):
파일' <pyshell#2', 1 행, in< 모듈>
L [-4] 인쇄
인덱스 오류: 목록 인덱스가 범위를 벗어났습니다
& gt& gt& gt
내장 append () 메서드는 꼬리에 목록을 추가하고 insert () 메서드는 지정된 위치 (아래 첨자는 0 부터 시작) 에 목록을 추가합니다.
& gt>>l = [12,' 중국', 19.998]
& gt& gt& gtl. 추가 ("잭")
& gt& gt& gt 인쇄 l
[12,' 중국', 19.998,' 잭']
& gt& gt& gtl. insert( 1, 3. 14)
& gt& gt& gt 인쇄 l
[12,3.14,' 중국', 19.998,' 잭']
& gt& gt& gt
Pop () 를 사용하여 마지막 꼬리 요소를 제거하거나 매개 변수를 지정하여 지정된 위치를 제거할 수 있습니다.
& gt& gt& gt 팝 음악 ()
잭
& gt& gt& gt 인쇄 l
[12,3.14,' 중국', 19.998]
& gt& gt& gt 팝 음악 (0)
12
& gt& gt& gt 인쇄 l
[3. 14,' 중국', 19.998]
아래 첨자를 복사하고 바꿀 수도 있습니다.
& gt>>l [1] = "미국"
& gt& gt& gt 인쇄 l
[3. 14,' 미국', 19.998]
튜플
튜플은 "변경할 수 없는" 목록으로 간주될 수 있으며 액세스는 아래 첨자와 괄호 () 로 표시됩니다.
& gt& gt& gtt =(3. 14,' 중국',' 제이슨')
& gt& gt& gt 인쇄 t
(3. 14, "중국", "제이슨")
그러나 대체자는 재지정할 수 없습니다.
& gt>>t [1] =' 미국'
역추적 (최근 호출):
파일' <pyshell#2 1', 1 줄, in< 모듈>
T [1] =' 미국'
잘못된 유형:' 튜플' 객체는 항목 할당을 지원하지 않습니다
Pop, insert 및 append 메서드도 없습니다.
빈 요소 튜플을 생성할 수 있습니다.
T = ()
또는 단일 요소 튜플 (예: 플라스틱 모호성을 방지하고 선언하기 위해 쉼표를 추가하는 경우):
T =(3. 14
그럼 이런 타입의 튜플은 무슨 소용이 있나요? 하나의 함수가 여러 반환 값을 반환하도록 하려면 하나의 튜플만 반환하면 됩니다. 튜플에는 여러 값이 포함되어 있고 변경되지 않기 때문입니다 (Java 의 final 처럼). 물론 튜플도 가변적입니다. 예를 들면 다음과 같습니다.
& gt& gt& gtt =(3. 14,' 중국',' 제이슨', ['a', b'])
& gt& gt& gt 인쇄 t
(3. 14,' 중국',' 제이슨', ['a', b'])
& gt>>l = t [3]
& gt>>l [0] =122
& gt>>l [1] = 233
& gt& gt& gt 인쇄 t
(3. 14,' 중국',' 제이슨', [122, 233])
이는 Tuple 의 가변성이란 위치를 가리키는 것이 불변이라는 것을 의미하기 때문입니다. 이 경우 네 번째 요소는 기본 유형이 아니라 목록 유형이기 때문에 T 가 가리키는 목록의 위치는 변경되지 않지만 목록 자체의 내용은 변경될 수 있습니다. 목록 자체의 메모리 할당이 불연속적이기 때문입니다.
사전
Dict 는 파이썬에서 매우 중요한 데이터 유형입니다. 문자 그대로, 그것은 살아있는 사전이며, 실제로는 키-값 키-값 쌍이다. HashMap 과 마찬가지로 중괄호 {} 로 정의할 수 있으며 c 언어의 구조를 정의하는 것과 유사합니다.
& gt& gt& GTD = {
아담: 95 년,
리사: 85 세,
바트: 59 세,
폴: 75 세
}
& gt& gt& gt 인쇄 d
{"리사": 85 세, "폴": 75 세, "아담": 95 세, "바트": 59 세}
인쇄된 결과는 모두 키: 값 형식이며 길이는 len 함수 (List, tuple 도 가능) 를 통해 계산할 수 있습니다.
& gt& gt& gt 렌즈
사
키 값 쌍을 통해 dict 에 직접 요소를 추가할 수 있습니다.
& gt& gt& gt 인쇄 d
{"리사": 85 세, "폴": 75 세, "아담": 95 세, "바트": 59 세}
& gt& gt& GTD [존스] = 99
& gt& gt& gt 인쇄 d
{"리사": 85 세, "폴": 75 세, "아담": 95 세, "존스": 99 세, "바트": 59 세}
List 와 Tuple 은 아래 첨자를 사용하여 내용에 액세스하는 반면 Dict 는 키를 사용합니다. (String, integer, floating-point, tuple 모두 dict 키로 사용할 수 있습니다.).
& gt& gt& gt 인쇄체 d ['아담']
95
키가 존재하지 않으면 다음과 같은 오류가 보고됩니다.
& gt& gt& gt 인쇄체 d ['잭']
역추적 (최근 호출):
파일' <pyshell#40', 1 행, in< 모듈>
인쇄체 d ['잭']
주요 오류: "잭"
따라서 액세스하기 전에 키가 있는지 확인하는 것이 좋습니다.
& gt& gt& gt d 에서 "Adam" 인 경우: "exist key" 를 인쇄합니다
기존 키
또는 보험 취득 방법을 직접 사용하십시오.
& gt& gt& gt 인쇄 D. get ('아담')
95
& gt& gt& gt 인쇄 d.get ('제이슨')
아무도 없다
Dict 순회의 경우 실제로는 모든 키의 컬렉션을 통과한 다음 이 키를 사용하여 적절한 값을 얻습니다.
D 의 키에 대한>& gt& gt: 인쇄 키:':', d.get (키)
리사: 85 세
폴: 75 세
아담: 95 세
바트: 59 세
Dict 에는 몇 가지 기능이 있습니다.
검색 속도가 매우 빠르다. 속도는 10 또는 65438+100,000 과 동일하지만 메모리를 많이 사용합니다. 반면 List 는 메모리를 적게 사용하지만 검색 속도가 느립니다. 이것은 배열과 연결된 목록의 차이와 같습니다. 배열은 열 공간의 양을 모르기 때문에 일반적으로 처음에는 많은 공간을 열지만 아래 첨자로 직접 검색하는 것이 빠릅니다. 그러나 연결된 목록이 차지하는 공간은 작지만 검색 시 순서대로 순회해야 하므로 속도가 느려집니다.
순서가 없다. Dict 는 무질서하고, List 는 질서 정연한 집합이므로 Dict 를 사용하여 질서 정연한 컬렉션을 저장할 수 없습니다.
키는 변하지 않고 값은 가변적입니다. 키-값 쌍이 dict 에 추가되면 해당 키는 변경할 수 없지만 값은 변경할 수 있습니다. 따라서 List 는 Dict 의 키로 사용할 수 없지만 값으로 사용할 수 있습니다.
& gt& gt& gt 인쇄 d
{"리사": 85 세, "폴": 75 세, "아담": 95 세, "존스": 99 세, "바트": 59 세}
& gt>>D ['새 목록'] = [12,23, 잭]
& gt& gt& gt 인쇄 d
{'바트': 59,' 새 목록': [12, 23,' 잭'],' 아담': 95,' 존스': 99,' 리사
키는 중복될 수 없습니다. (다음 예제에서는 "Jone": 0 이 추가되었지만 실제로 키 "jone" 이 이미 있으므로 원래 값만 변경되었습니다. ) 을 참조하십시오
& gt& gt& gt 인쇄 d
{'바트': 59,' 새 목록': [12, 23,' 잭'],' 아담': 95,' 존스': 99,' 리사
& gt>>D ['존스'] = 0
& gt& gt& gt 인쇄 d
{'Bart': 59,' new list': [12, 23, Jack],' Adam': 95,' jone':;
Dict merge, 두 개의 Dict 를 하나로 결합하는 방법, dict 함수를 사용할 수 있습니다.
& gt>>D1= {'마이크':12,' 잭':19}
& gt> & gtd2 = {'jone': 22,' ivy':17}
& gt> & gtdmerge = dict (d1.items ()+d2.items ())
& gt& gt& gt 인쇄 데이터 병합
{'마이크':12,' 잭':19,' 존스': 22,' 아이비':17
또는
& gt> & gtdmerge2 = dict (d1,**d2)
& gt& gt& gt 인쇄 데이터 병합 2
{'마이크':12,' 잭':19,' 존스': 22,' 아이비':17
방법 2 는 방법 1 보다 훨씬 빠르며 방법 2 는 다음과 같습니다.
& gt> & gtdmerge3 = dict (d1)
& gt& gt& GTD merge 3. update(D2)
& gt& gt& gt 인쇄 데이터 병합
{'마이크':12,' 잭':19,' 존스': 22,' 아이비':17
설정
설정은 Dict 에서 키를 뽑는 것과 같습니다. 목록과 비슷하지만 내용은 반복할 수 없습니다. Set () 메서드를 호출하여 만듭니다.
& gt& gt& GTS = 컬렉션 (['a',' b',' c']
Dict 가 무질서한 것처럼, set 도 무질서하며 중복 요소를 포함할 수 없습니다.
컬렉션에 액세스하는 의미는 요소가 컬렉션에 있는지 확인하는 것입니다.
& gt& gt& gt 는 s 에' a' 를 인쇄합니다
진짜
& gt& gt& gt 는 s 에' d' 를 인쇄합니다
잘못된
대소문자에 민감하다.
또한 다음과 같은 용도로 트래버스됩니다.
S = 집합 ([('아담', 95), ('리사', 85), ('바트', 59))
# 튜플
S 의 x:
X [0],':', x [1] 인쇄
& gt& gt& gt
리사: 85 세
아담: 95 세
바트: 59 세
요소를 추가 및 제거합니다 (반복하지 않음). 요소를 추가할 때는 set 의 add () 메서드를 사용합니다.
& gt& gt& GTS = 집합 ([1, 2,3])
& gt& gt& GTS. add(4)
& gt& gt& gt 인쇄 s
집합 ([1, 2, 3, 4])
추가한 요소가 이미 컬렉션에 있는 경우 add () 는 오류를 제공하지 않지만 추가되지 않습니다.
& gt& gt& GTS = 집합 ([1, 2,3])
& gt& gt& GTS. add(3)
& gt& gt& gt 인쇄 s
집합 ([1, 2, 3])
컬렉션에서 요소를 삭제할 때는 컬렉션의 remove () 메서드를 사용합니다.
& gt& gt& GTS = 집합 ([1, 2,3,4])
& gt& gt& gt 제거 (4)
& gt& gt& gt 인쇄 s
집합 ([1, 2, 3])
삭제된 요소가 컬렉션에 없으면 remove () 에서 오류를 보고합니다.
& gt& gt& GTS = 집합 ([1, 2,3])
& gt& gt& gt 제거 (4)
역추적 (최근 호출):
파일' < 표준 가져오기', 1 행, in< 모듈>
중요 오류: 4
따라서 요소가 여러 가지 조건을 충족하는지 여부를 판단하려면 set 이 최선의 선택입니다. 다음 예:
Months = 집합 (['1 월',' 2 월',' 3 월',' 4 월',' 5 월',' 6 월',' 7 월',' 8 월','
X1=' 2 월' 입니다
X2 =' sun'
X 1 월 단위인 경우:
X 1: normal 을 인쇄합니다
그렇지 않은 경우:
X 1: 오류 인쇄
X2 가 월 단위인 경우:
X2: normal 을 인쇄합니다
그렇지 않은 경우:
X2: 오류 인쇄
& gt& gt& gt
X 1: 좋습니다
X2: 오류