사전의 제 1.6 장 데이터 형식

첫째, 사전

1, 사전 무엇입니까

1) 사전 :
  • 2 값 : 키 {1 : 1 개 값, 키 2 사전 데이터 타입, 심볼 등의 용기에 중괄호 {} 쉼표로 구분되는 복수의 원소, 사전 요소에만 키 - 값 쌍 될 수있는 컨테이너 키 3 : 값 3, ...}
  • 사전 변동 (지원 CRUD), 장애 (첨자 작업이 지원되지 않음)
2), 키 - 값 쌍
  • 사전의 모든 요소는 키 - 값 쌍 키이어야 및 값 쌍에 나타나야
  • 데이터는 사전에 저장된 값이 키 값을 구분하는 데 사용되는 저장
  • 키 - 이론적 어떠한 불변의 데이터 수, 동일한 사전의 키 (열쇠)와 같은 문자열의 실제 발전 유일한 키 인 경우, 일반
  • 값은 - 모든 유형의 데이터 일 수있다
dict1 = {'dfg':34, 'a':True, 'o':[1,2], 'c':{'name':'小明'}}   #   值可以是任何数据
dict2 = {10:34, 'a':True, [1,2]:{'name':'小明'}}   #   键只能是不可变数据:数字,元组,字符串



둘째, 사전의 기본 동작 (CRUD)

1, 검사 --- 사전의 가치를

1) 하나의 값을 획득

사전하는 열쇠 ------> 가져 키 값이없는 경우, 지정된 사전 지정된 키에 대응하는 값이
사전 갔지 (키)의 경우, 특정 키 값에 대응 ------> 길 사전 키 값은, 반송 중에, 오류가 존재하지 않는
사전 갔지 (키 기본값) ------> 키 값이 존재하지 않는 경우 사전 지정된 키에 대응하는 값을, 제공되지 취득 기본값 지정된 리턴

person = {'name':'小明', 'age':'18', 'tel':'13888888888'}
print(person['age'])
print(person.get('age'))
2), 이송

사전의 키 :
 루프

다른 탐색 방법 (비효율적)
키를 들면, person.items ()에서 값 :
 인쇄 (키, 값)

2, 추가 / 변경

사전 [키 = 값

  • 메모리에 사전에 키를 수정하는 경우
  • 키가 사전에없는 경우, '키를'증가 '가치'
person = {'name':'小明', 'age':'18', 'tel':'13888888888'}
person['name'] = '小花'
person['分数'] = 89
print(person)

3. Delete 키를 삭제할 ---

1), 델 사전 [키 - 상기 사전 삭제 지정된 키 값 쌍에 대응
del person['age']
print(person)
2) 사전 .pop (키) - 키가 사전에서 사라지고 키 - 값 쌍에 대응하는 (사전 지정된 값에 대응하는 키를 제거)
person.pop('name')
print(person)

연습

# 练习,保存一个班的学生信息:姓名,学号,年龄,成绩,电话)一个班五个人
all_student = [
    {'name':'tom', 'age':20, 'score':80, 'tel':'13888888888'},
    {'name':'tony', 'age':13, 'score':90, 'tel':'13888888883'},
    {'name':'john', 'age':45, 'score':49, 'tel':'13888888884'},
    {'name':'tom2', 'age':35, 'score':73, 'tel':'13888888885'},
    {'name':'tom3', 'age':10, 'score':99, 'tel':'13888888886'}
]
# 1)统计以上学生中不及格学生的人数
n = 0
for student in all_student:
  if student[score] < 60:
    n += 1
print(n)

# 2)将打印所有未成年人学生的姓名
for student in all_student:
  if student[age] < 18:
    print(student[name])

# 3)将年龄为25岁以上的学生的电话号码设置为’保密’
for student in all_student:
   if student[age] > 25:
     student[tel] = '保密'
print(all_student)



셋째, 사전의 다른 작업

1 :! = == 연산자 (지원하지 : + * <> = <=> 연산자)

2,의 / NOT IN

하지 사전에 사전 / 키의 키 - 키가 사전에 있는지 여부를 확인하기 위해

3 렌 딕셔너리

LEN (사전) ------> 사전의 길이, 키 - 값 쌍들의 수
딕셔너리 (데이터) ------> 사전에 지정된 데이터;

데이터 요구 사항 :

  • 1) 데이터 자체의 순서이고;
  • 2) 서열 요소의 순서이고;
  • 3) 스마트 작은 시퀀스 요소는 두 개의 상기 제 1 엘리먼트 불변

핵심 요소 목록으로 꺼낸 모든 사전의 목록에 --- 변환 사전

4, 사전하는 명확한 () - 빈 사전

5, 사전 .copy은 () - 복사 사전 반환을 새 사전은 (서로 영향을 미치지 않습니다)

6 dict.fromkeys (서열 값) - 새로운 사전 키, 각 키의 값으로 지정된 값과 같은 시퀀스의 요소를 만들고 새로운 사전을 생성

7, 사전 .items (), 사전의 .values ​​(), 사전의 .keys ()

1) 사전 .KEY () -> 모든 사전와 리턴 키를 가져 오기, 데이터 유형은 순서가 아니라 반환 목록입니다
2) 사전 .values은 () -> 가져 오기 모든 사전 및 반환 값의 데이터 유형은 순서가 아니라 반환 목록입니다
3) 사전 .items은 () - 튜플 요소의 시퀀스의 두 요소가> 모두 동시에 사전 취득한 값 키, 순서를 리턴 이들 두 요소는 키 값이며

8 사전 .setdefault (키, 값) - 추가 쌍 사전 (키 값이 존재하는 경우 수정되지 않습니다)

9, 사전 1.update (사전 (2)) - 사전에 사전에 두 키 - 값 쌍은 (1)에 첨가 (첨가없는, 커버의 존재)

연습

# 练习2:设计数据保存一个班的信息:
# 名字:python1906;
# 所有老师(名字,性别,联系方式,职位):
# 所有学生(姓名,毕业学校,电话,性别,年龄,紧急联系人(姓名,电话,关系))
class_1906 = {
  'class_name' : 'python_1906', 
  'all_teacher' : [
    {'name' : '张老师', 'gender' : '女', '职位' : '班主任', '联系方式' : '123451'},
    {'name' : '余老师', 'gender' : '女', '职位' : '讲师', '联系方式' : '123452'}
  ]
  'all_student' : [
    {'name' : '张三', 'gender' : '男', '年龄' : '25', '联系方式' : '123453', '紧急联系人' : {'name' : '李四', '关系' : '父子', '联系方式' : '12345678'}},
}
print(class_1906[all_student][-1]['紧急联系人'])

추천

출처www.cnblogs.com/anjhon/p/11892294.html