字典基础知识

‘’’
字典是一种容器数据类型,用于存储键值对(key-value)的数据集合
一、特点
1)通过一个key对应一个确定唯一的值
2)可变性:可以通过索引修改、删除或插入元素,可以改变列表的长度、内容和顺序
3)异构性:可以包含不同类型的元素,如string、int、float、list等
4)无序性

‘’’

def dic_info():

'''
1、字面量定义
    1)用{}定义,key-value形式表示字典
    2)key-value中的key必须是一个可哈希对象,可以使用hash()函数来判断是否可哈希
    3)理论上来说,python中的不可变对象数据都可以作为key使用,但是为了方便,大多数情况使用字符串作为key
'''
print(hash('ab'))#可哈希对象
print(hash('ab'))
print(hash('ab'))

# print(hash([1,2,3]))
print(hash('abc'))
# print(hash((1,2,3,[1])))
t1 = (1, 2, 3, [1])
t1[3].append(3)
print(t1)
l1 = [1, 2, 3]
l1.append('python')
print(l1)

d1 = {}
print(d1)
print(type(d1))
d2 = {'name': 'Tom', 'age': 25, 'gender': True, 'hobby': {'first': ('eat', 'drink'), 'second': 'play'}}
print(d2)
print(type(d2))

'''
    2、构造方法定义
'''
d1 = dict(name='Jack', age=25, gender='male')
print(d1)
d2 = dict([('name', 'Tom'), ['age', 25]])
print(d2)
d3 = dict({'one': 1, 'three': 3}, two=2)
print(d3)
keys = ['name', 'age', 'gender', 'address']
values = ['Alice', 8, 'male', 54645]
d4 = dict(zip(keys, values))
print(d4)

'''
    3、字典数据的访问
        1)字典没有类似列表、元组那样的数字下标索引
        2)字典通过使用key来获取对应的值
        3)格式: 字典对象[key]
'''
d1 = {'name': 'Tom', 'age': 25, 'gender': True, 'hobby': {'first': ('eat', 'drink'), 'second': 'play'}}
print(d1['name'])

'''
    4、字典元素的添加与修改
        1)字典中一个key对应一个value,
        2)当给一个key赋值时,如果key存在,则对当前key对应的值做修改更新
        3)如果key不存在,则是添加数据
        4)格式: 字典对象[key] = value
'''
d1 = {}
d1['hobby'] = 'travle'
d1['name'] = 'NewJack'  # 添加
print(d1)
d1['name'] = 'Jack'  # 修改
print(d1)
del d1['name']  # 删除元素
print(d1)
# del d1#删除字典
# print(d1)

'''
    5、字典的有序性(Python3.7+)
        1)保持添加时的顺序
        2)如果编程依赖字典键值对的顺序,建议使用Python3.7+版本
'''

'''
    6、应用场景
        1)字典适用于储存有相关性的数据,如用户信息,学生成绩等,每个兼职队标是一个独立数据项,通过键来关联对应的值
        2)字典可以通过键来快速定位对应的值,而不需要遍历整个字典
        3)字典作为数据容器,可以方便地进行遍历、搜索、插入和删除操作,可以通过循环遍历字典的键或值,通过键进行搜索和更新,通过键值对的添加和删除来
           动态修改字典的内容等等
'''