Python第三篇--字典
字典定义方式
stu1={"name":"Jerry","age":"22","sex":"男"}
stu1.keys()返回所有key类型是dict_keys
stu1.values()返回所有value类型是dict_values
取值,列表,元祖,字典的取值方法都是用[]
stu1["name"]
字典与java中的map很像
字典特性
a.key必须是不可变类型,比如字符串,元组,数字等
b.key必须唯一
c.无序
d.查询速度很快,并且与字典大小无关,因为底层是hash实现的
字典增删改查
增:
stuff={ "Tom":["男","23","178"], "Jerry":["女","26","165"], "Bob":["男","23","188"], } stuff["Stefan"]=["男","22","180"] #如果有就是修改了
stuff.setdefault("key",value)如果有key了,就不修改,如果没有新增
删除:
del stuff["key"]这个和列表一样,可以删除指定的元素,列表里是用index去指定的,del stuff这样就是直接删除stuff这个变量。del是Python中的一种通用删除方法
stuff.clear()清空
stuff.pop("key")删除指定key
stuff.popitem()随机删除一个
修改:
stuff["key"]=value已经存在的覆盖
stuff.update(stuff2)两个字典合并,相同的key用第二个覆盖
查询:
和列表一样,可以用key去取,如果没有key则会报错,所以先判断 if key in dict : dict[key]
也有不用判断的方法,dict.get(key),如果没有返回的是None但是不会报错,也可以指定没有key时返回内容,dict.get(key,-1)这里就指定了,如果key在字典中不存在,则返回-1
字典遍历
for k in dict:
print(k,dict[k])
这个是最快的方式也可以for k,v in dict.item(): print(k,v)
stuff={ "Tom":["男","23","178"], "Jerry":["女","26","165"], "Bob":["男","23","188"], } stuff["Stefan"]=["男","22","180"] for k,v in stuff.items(): print(k,v)
len(dict)就是求长度,通用方法
字典的推导式
dict_map={"name":"Alex","age":"12"} dict_copy={v:k for k,v in dict_map.items()} print(dict_copy) #{'Alex': 'name', '12': 'age'}
可以对字典进行kv互换