Python基础(15)–字典概述

◎知识点

  1. 为什么需要字典?

  2. 什么是字典?

  3. 字典的创建


◎脚本练习

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
 @FileName:    dict_def.py
 @Function:    dict definition
 @Author:      Zhihe An
 @Site:        https://chegva.com
 @Time:        2021/6/27
"""

"""一、为什么需要字典?"""

"""
    电话簿中存储了姓名和电话号码:
    张三 → 13333333333
    李四 → 14444444444
    王五 → 15555555555
    赵六 → 16666666666
"""

# 姓名
names = ['张三', '李四', '王五', '赵六']
# 电话号码
numbers = ['13333333333', '14444444444', '15555555555', '16666666666']
# 如果想要查找某人的电话号码
print(numbers[names.index('王五')])   # 15555555555

"""
    最好能这样:把姓名和电话号码全部都存储在一个叫phonebook的数据结构中,指定姓名'王五'后
    就能直接得到其对应的电话号码
    print(phonebook['王五']) # 15555555555
    使用字典就可以实现
"""

phonebook = {
    '张三': '13333333333',
    '李四': '14444444444',
    '王五': '15555555555',
    '赵六': '16666666666'
}
print(phonebook['王五'])  # 15555555555


"""二、什么是字典?"""

"""
除了列表和元组,字典也是python语言提供的内置数据结构之一
1、字典的实现原理
    字典的实现原理和查字典是类似的。当我们在字典中查找某个字时,一种办法是从字典的第一页开始
    往后翻,直到找到我们要查找的字为止。这种办法就是在列表中查找元素的办法,其缺点是:
    字典中的字数越多查找效率越低。第二种办法是先在字典的索引表里(比如部首表)查找这个字对应的页码,
    然后直接翻到这个字对应的页,其优点是:查找效率不会随着字典中字数的增加而降低,无论查找哪个字,查找速度都非常快
"""

"""
2、字典的特点
    (1) 字典中的所有元素都是一个key-value对,通过指定的key总能映射到唯一指定的value
        字典中不可以存在重复的key,但是可以存在重复的value
    (2) 字典中的元素是无序的
        顺序不重要,重要的是key和value的映射关系
    (3) 字典中的key必须是不可变对象
        存取字典中的key-value对时,系统会调用内置函数hash根据指定的key计算出value的存储位置,也就是哈希值
        对于指定的key,为了保证每次计算出的哈希值都是相同的,要求key必须是不可变对象
        也就是说,只有不可变对象才存在哈希值
    (4) 字典可以根据需要动态地伸缩
        系统会根据需要动态地分配和回收内存,因此在使用前无须预先声明字典的容量
    (5) 字典会浪费较大的内存
        与列表相比,是用空间换取了时间
"""


"""三、字典的创建"""

"""
创建字典的常见方式有三种:
1、使用花括号
"""

print({'name': 'Jack', 'age': 18})  # {'name': 'Jack', 'age': 18}

# 空字典
print({})   # {}

"""
2、调用内置函数dict(类dict的构造方法)
"""

print(dict({'name': 'Jack', 'age': 18}))    # {'name': 'Jack', 'age': 18}
print(dict(name = 'Jack', age = 18))        # {'name': 'Jack', 'age': 18}
print(dict([('name', 'Jack'), ('age', 18)]))    # {'name': 'Jack', 'age': 18}
print(dict(zip(range(3), 'ABC')))           # {0: 'A', 1: 'B', 2: 'C'}

# 空字典
print(dict())   # {}

"""
3、调用dict的方法fromKeys
    调用该方法时通过参数指定所有的key,所有的value的默认值为None
"""

print(dict.fromkeys(['name', 'age']))   # {'name': None, 'age': None}
print(dict.fromkeys(('name', 'age')))   # {'name': None, 'age': None}

# 调用该方法时可以通过参数指定所有value的值

print(dict.fromkeys(['name', 'age'], 'N/A'))    # {'name': 'N/A', 'age': 'N/A'}

▽ 字典示意图

Python基础(15)--字典概述

◎脚本地址:https://github.com/anzhihe/learning/blob/master/python/practise/learn-python/python_basic/dict_def.py

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/4744.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注