2018年11月24日 周末学习1 字典2

info={
      "k1":12,
      "k2":True,
      "k3":[11,"sxj",],
      "k4":"abc",
      }
v1=info["k1"] #输入key值 得出value值
print ("1.字典的索引:",v1) #字典的索引
v2=info["k3"][1]
print("2.索引用法如何寻找sxj:",v2)#通过索引一层层寻找

#VIP:因为字典是无序的,所以不能切片

del info["k2"]
print("3.k2键值对删除:",info)#字典支持删除

for item in info:
    print("4.for循环的应用:",item) #默认循环的是key
for item in info.keys():
    print("5.字典获取key:",item,info[item])
for item in info.values():
    print("6.字典value值获得:",item)
for item in info.items():
    print("7.循环获得键值对items:",item)
for k,v in info.items():
    print("8.循环分别获得key与value用法:",k,v

 

如果key值有重复,例如 True和1 例如  都是"K1“,后面的value会替代前面的,并且只显示一个key值

info={
    "k1":122,
    1:"222",
    "123":2,
    True:"abc"# True与1重复 注意value值的传递
      }

print (info)

a=dict.fromkeys("abc","123")
b=dict.fromkeys(["a",1,True],["sxj",2,4])
c=dict.fromkeys(("sxj",2,4),"abc")
print("1.根据序列或者字符串或者元祖创建字典,并指定统一的值:"'
',a,'
',b,'
',c)
d=a.get("ABC","k不存在则返回默认值")
e=b.get("a")# 根据key值去取值,get不会更改原来a字典内的数据
print("2.get高级索引的用法,普通索引不到会报错,该方法不会:",d,e)
f=c.pop("sxj","默认值,如果没得删除就返回该默认值")
g=c.pop("aaaa","默认值")
print("3.pop删除的用法",f,'
',c,'
',g)
h=a.popitem()#随机删除键值对并返回该删除的内容
print("4.popitem 用法,随机删除键值对并返回删除内容:",h,'
',a)

a2=a.copy()
i=a.setdefault("sxj","默认值1")
j=a2.setdefault("a","默认值2")
print("5.setdefault设置值,如果已经存在就不设置但是返回当前key对应值,如果不存在就返回默认值:",'
',a,'
',i,'
',a2,'
',j)
a3=a.copy()
a4=a.copy()
a3.update({"k1":"如果没有则在后面添加","b":"如果原来有就替换"})
#update更新的用法
a4.update(a="更新1",c="没有就添加")
print("6.update用法注意参数:
",a3,'
',a4)

如果参数内部写成**kwargs,则默认会转换成字典,可以写成 例如name=“sss”,age=18 也可以写成字典形式 传递参数

t="I am {name},age:{age}"
v=t.format(name="sxj",age=18)
print(v)
w=t.format(**{"name":"sxj","age":18})
print(w)
#前面需要加** 否则报错 
a= 'a' in info #判断是否在key值
b="c" in info.values()#判断是否在value值内
print(a,b)
#none;"";();[];{};0 ==》 这些都是Falue,其他都是True
a=bool({})
print(a)
 


原文地址:https://www.cnblogs.com/python1988/p/10012083.html