python数据类型之字典(dict)和其常用方法

字典的特征:

key-value结构
key必须可hash,且必须为不可变数据类型、必须唯一。 # hash值都是数字,可以用类似于2分法(但比2分法厉害的多的方法)找。
可存放任意多个值、可修改、可以不唯一
无序
查找速度快

常用方法:

info = {'stu01': 'alex', 'stu02': 'jack', 'stu03': 'jucy'}
# 关键字:info.keys(),值:info.values()
print('stu01' in info)  # True
print(info['stu01'])  # alex 没有会报错
print(info.get('stu01'))  # alex  没有不会报错,而是返回None,一般用这个
print(info.pop('stu03'))  # jucy 删除,返回删除的值
# info.popitem()  随机删
# del info['stu01']  删除方法,全局删除

# copy和list的一模一样
# 可多嵌套

print(info.items())  # 把字典转成列表。dict_items([('stu01', 'alex'), ('stu02', 'jack')])
info2 = {1: 2, 'stu02': [22, 1893113111, '']}
info.update(info2)  # 更新和list的extends类似,有对应的值就覆盖,没有对应的值就创建。
print(info)  # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2}

info.setdefault(2, 'a')  # 如果有2这个值就什么都不做,如果没有就把2的值写成'a'
print(info)  # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2, 2: 'a'}

seq = ('Google', 'Runoob', 'Taobao')
dict = dict.fromkeys(seq)
print("新字典为 : %s" % str(dict))  # 字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}
dict = dict.fromkeys(seq, 10)
print("新字典为 : %s" % str(dict))  # 新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}

# 打印出key和value
for k in info:
    print(k, info[k])

# 下面这个方法不建议用,低效,需要把字典转换成列表,而字典的查询速度特别快
for k, v in info.items():
    print(k, v)

猜你喜欢

转载自www.cnblogs.com/lshedward/p/9919445.html