Python自学笔记(5day)
dict 字典
(1)数据分为可变数据类型与不可变数据类型
可变数据类型:list dict
不可变数据类型:int str bool 元祖
字典的key:为不可变数据类型
字典的value:为可变数据类型
字典操作
(1)增 dict[key]=value 或者 dict.setdefault(key,value)
dict={"height":184,"age":18} dict["weight"]=135 print(dict) #输出:{"height":184,"age":18,"weight":135} #也可以将 dict["weight"]=135 换成 dict.setdefault("weight",135)
(2)删 dict.pop(key) dict.popitem()随机删除 dict.clear() del dict[key]
#(1)dict.pop dict={"name":"wang","sex":"male"} dict.pop("name') print(dict) #输出:{"sex":"male"} #如果print(dict.pop("name")) #输出:"wang"
(3) 改 dict[key]=value 如果原字典中存在相同的key,则会将原value覆盖掉,如果没有相同key则会添加
dict1.update(dict) 将dict添加到dict1中,会覆盖掉相同的key值
dict={"name":"w","age":12} dict1={"height":156} dict.update(dict1) print(dict) #输出:{"name":"w","age":12,"height":156}
#如果,dict.setdefaut("name",18),这时输出:{"name":18,"age":12}
(4)查 dict.keys()查找key dict.values() 查找键值 dict.items() 查找键值对
#查找键
dict={"name":"w","age":12} for i in dict.keys(): #也可以用for i in dict, dict默认查找键 print(i) #输出:name age
#查找键值
dict={"name":"w","age":12}
for i in dict.values():
print(i)
#输出:w 12
#查找键值对
dict={"name":"w","age":12}
for i in dict.items():
print(i)
#输出:("name","w") ("age",12) 返回的是元祖
#如果想要不加括号则:for v,k in dict.items() 这时v代表key,k代表value
#输出:name w
# age 12
(5)嵌套 dict的嵌套与列表一样,总的来说就是找到对应位置,然后进行相应的操作。
dict={"name":["alex","wangran"] "p":{ "time":123 "shuaige":12 } "age":12 } #添加一个键值对 dict.setdefault("height",12) #在键"p"所对应的值中添加以上键值对 #dict["p"].setdefault("height",12) #也可以:dict["p"]["weight"]=12
(6) 判断一个字符是否为字母 i.isalpha() 判断是否为数字 i.isdigit()
课后习题
#定义一个看列表,将大于30的数字放在key1下面,小于33的放在key2下面,以字典的形势。 list=[1,3,5,7,9,45,67,89,100] dict={} l=[] #存放小于33的数字的v列表 s=[] #存放大于33的数字的列表 for i in list: if i<33: l.append(i) else: s.append(i) dict.setdefault("key1",l) dict.setdefault("key2",s) print(dict)
#定义一个列表,输出序号以及对应商品名字,并可以使用户选择商品序号打印出商品 while 1: list=["手机","电脑","吸尘器"] for i in list: print("{} {}".format(list.index(i)+1, i)) num=input("输入商品序号\输入Q结束:\n") if num.isdigit(): num=int(num) if num>0 and num<len(list): print(list[num-1]) elif num.upper()=="Q": break else : print("请输入数字")