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("请输入数字") 

 


 
posted @ 2018-09-09 22:43  诺诺诺亚索隆  阅读(133)  评论(0编辑  收藏  举报