欢迎来到LYBLaoInB的博客
LYBLaoInB
LYBLaoInB
回首往事,不因虚度年华而悔恨,不因碌碌无为而愧疚

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互换

 

posted @ 2020-08-06 16:52  LiuYongbo  阅读(138)  评论(0)    收藏  举报
<--将网易云歌单中的id复制到上面的data-id中就可以了 http://music.163.com/playlist?id=3103841025&userid=1698529278 -->