python全栈 S3--12day--字典的魔法(7-10)

一、字典

  1、表达方式:jay={"james":"hello","jake":"test"},"james":"hello"叫键值对,一个key,一个value,value可以是任意类型,也可以任意嵌套,key值可以是数字、字符串、元组、布尔值(注意可能会和1/0重复), 字典、列表是不可以的,因为列表元素能被修改

  2、字典是无序的

  3、通过key来获取value值

  4、字典的表达方式

#字典的表达方式
jay={1:15,"jay":"jake",(1,2,3,4):{1,2,3,4},"jay":True}
# 字典的value值可以类型
jay={1:15,"jay":{"jay":"jake",(1,2,3,4):{1,2,3,4}},(1,2,3,4):{1,2,3,4},"jay":True}
print(jay)
# 字典的key值只能是数字、布尔值、字符串、元组,不能是列表、字典
jay={1:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
print(jay)

  5、根据key值获取value值

jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
james=jay[12]
print(james)

jake=jay["jay"]
print (jake)
# 可以通过索引深层次的进行搜索value值
jay={"jaykjej":(11,3,4,5,6,7),
     234:{"jayjay":124,124:True},
     (234,"jaj"):True
     }
james=jay[234][124]
print(james)

  6、不能根据切片进行取值,因为字典是无序的,元组不能删除元素,但是字典能通过key值进行删除

1 jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
2 del jay[12]
3 print (jay)

  7、字典支持for循环但是不支持while循环

#字典默认进行for循环时输出的是key值
jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
for james in jay:
    print (james)


#字典进行for循环时可以特定输出value
jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
for james in jay.values():
    print (james)


#字典进行for循环时可以特定输出key值,但是字典默认就是输出key值
jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
for james in jay.keys():
    print (james)


#字典进行for循环时可以特定key值,以及对应的输出value值,需要设定两个变量值
jay={12:15,"jay":521,(1,2,3,4):{1,2,3,4},"jay":True}
for v,s in jay.items():
    print (v,s)

  #######################################以下是字典的魔法#########################################

1、clear,清空

2、copy,浅拷贝

3、fromkeys的使用方法

# 表示传入值,如果传入一个值的话,将所有字符作为key值,value值为None,如果传入的是两个值的话,将第二个值作为所有的value值,传入的必须是一个可迭代对象
jay={"james":"jake"}
nelly=jay.fromkeys("aimme",123)
print (nelly)

4 、get,的使用方法

#get表示通过key获取value值,如果不使用get方法,获取一个不存在的key值,会直接报错,如果使用get方法,获取一个不存在的key值,会返回None
# 如果获取一个存在的value值,会返回真实的值,如果获取一个不存在的value值,传上后面的参数会返回后面的参数值
jay={"james":"jake"}
nelly=jay.get("aimme",123)
print (nelly)

5、pop和popitem的使用方法,表示可以删除value值,也可以查看

 1 #pop表示可以通过key值删除value值
 2 jay={"james":"jake","v1":"v2"}
 3 v=jay.pop("v1")
 4 print (jay,v)
 5 
 6 #pop表示可以通过key值删除value值,也能够获取到删除的value值
 7 jay={"james":"jake","v1":"v2"}
 8 v=jay.pop("v1")
 9 print (jay,v)
10 
11 
12 #popitem表示可以删除键值对,这个不需要传入key值,这个既可以删除,也可以查看删除的键值对是什么
13 jay={"james":"jake","v1":"v2"}
14 v=jay.popitem()
15 print (jay,v)

6、setdefault的使用方法

# setdefault表示设置key值以及value值,如果没有的话,进行设置,如果有值的话就不会进行重新设置
jay={"james":"jake","v1":"v2"}
jake=jay.setdefault("nelly",123)
print(jay)

jay={"james":"jake","v1":"v2"}
jake=jay.setdefault("james",123)
print(jay)

7、update表示更新,的使用方法

# update表示进行更新,支持两种表达方式
jay={"james":"jake","v1":"v2"}
jake=jay.update({"james":123,"v2":"v1"})
print (jay)


jay={"james":"jake","v1":"v2"}
jake=jay.update(james=123,v2="v1")
print (jay)

 

***************字典中常用的keys()  values()   items()  get   update

 

 

 

总结:

  数字:int

  字符串:replace  find  join  strip  startswith  endswith  split  upper  lower  format

  列表:append  extend  insert  索引、切片、for循环  元素可以被修改

  元组:忽略  索引、切片、for循环  元素不能被修改

  字典:get  update  keys  values  intems   for循环  索引,也支持in操作

  布尔值:bool(。。。) ,返回值为1和0

      假的:None、空、0、除了这个其他的值都是真 

  

  

posted @ 2019-03-09 23:53  听MM的话  阅读(78)  评论(0)    收藏  举报