Python语言中唯一的映射类型
特性:
key-value结构
key必须为不可变数据类型、必须唯一(数字,字符串,元组)
可存放任意多个value、可修改、可以不唯一
无序
查询速度快,且不受dict的大小影响
name = {"name": "hk", "sex": "男"}
语法:dictname = dict.fromkeys(list,value=None)
list 参数表示字典中所有键的列表,value 参数默认为 None,表示所有键对应的值
name = dict.fromkeys([1,2,3,4],100) #{1: 100, 2: 100, 3: 100, 4: 100}
dic = dict(one=1,two=2,three=3) #{'one': 1, 'two': 2, 'three': 3}
print(dic)
注意:one、two、three 都是字符串,但使用此方式创建字典时,字符串不能带引号
4. 向 dict() 函数传入列表或元组,而它们中的元素又各自是包含 2 个元素的列表或元组,其中第一个元素作为键,第二个元素作为值
demo = (['two',2],['one',1],['three',3])
dic1 = dict(demo) #{'one': 1, 'two': 2, 'three': 3}
name = dict(name="hk", age=99)
name["salary"] = 10 # {'name': 'hk', 'age': 99, 'salary': 10}
print(name)
setdefault() 方法总能返回指定 key 对应的 value;
#如果该键值对存在,则直接返回该 key 对应的 value;
#如果该键值对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value
print(name.setdefault("job","hehe")) # hehe
print(name) # {'name': 'hk', 'age': 99, 'job': 'hehe'}
del names # 删除整个字典
del names["name"] # 删除name
names.pop("name") # 删除指定key
names.popitem # 随便删除1个key
names.clear() # 清空字典
names["name"] = "kun"
names.update(name1) # 将字典name1中的key-value添加到names中,如果已存在key,则更新为Name中的key
value = names["age"] # 返回key对应的值,若不存在则报错
1. get 返回key对应的值,若key不存在,则返回default的值(default默认为None)
print(names.get("hehh",None)) # None
print(names.get("hehh",999)) # 999
2. keys 返回一个包含字典所有KEY的列表
print(names.keys()) # dict_keys(['name', 'sex', 'age', 'job'])
3. values 返回一个包含字典所有value的列表
print(names.values())
4. items 返回一个包含所有(键,值)元组的列表
print(names.items()) #dict_items([('name', 'hk'), ('sex', '男'), ('age', 18), ('job', 'teacher')])
for i in names:
print(i,names[i],end=" ") # name hk sex 男 age 18 job teacher
for k,v in names.items():
print(k, v) # name hk sex 男 age 18 job teacher
print(len(names)) # 4
print("name" in names) # True