码迷,mamicode.com
首页 > 其他好文 > 详细

字典的学习

时间:2018-08-01 22:27:14      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:操作   str   split   []   set   变量   最大的   电脑   com   

主要内容
1. 字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
2. 增删改查
dic[key] = value
dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加
可以通过key查询,没有这个key返回None
====================================================================
pop(key) 有返回值 返回的是被删除value
del dic[key]
popitem() 随机删除
clear() 清空字典
======================================================================
dic[key] = value
dic.update(字典)

=======================================================================
get(key)
dic[key]
for 循环
setdefault(key)
=======================================================================
3.字典的其他操作:
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对已元祖的形式存在一个高仿的列表中
解构:
a,b = 1, 2
a,b = (1,2)
a,b = [1,2]
4. 字典的嵌套:
 dic = {
            ‘name‘:‘汪峰‘,
            ‘age‘:43,
            ‘wife‘:{
                ‘name‘:‘国际章‘,
                ‘age‘:39,
                ‘salary‘:100000
            },
            ‘baby‘:[
                {‘name‘:‘熊大‘,‘age‘:18},
                {‘name‘:‘熊二‘,‘age‘:15},
            ]

        }

        dic[‘baby‘][0][‘age‘] = 19

        print(dic)

  

习题

# tu = ("alex", [11, 22, {"k1": ‘v1‘, "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])
# a. 讲述元组的特性
# 不可变的列表.又被成为只读列表.
# 里面可以放任何数据类型的数据,查询可以.循环也可以.切片也可以.但就是不能改.

# b. 请问tu变量中的第一个元素 "alex" 是否可被修改?
# 不可以,元组查询可以.循环也可以.切片也可以.但就是不能改.
# c. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
# print(type(tu[1][2]["k2"]))             #<class ‘list‘>
# 可修改   tu[1][2]["k2"].append("Seven")

# d. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
# print(type(tu[1][2]["k3"]))         # <class ‘tuple‘> 元组不可以修改
# dic = {‘k1‘: "v1", "k2": "v2", "k3": [11, 22, 33]}
# a. 请循环输出所有的key
# for el in dic:
#     print(el)           # k1 k2  k3

# b. 请循环输出所有的value
# print(dic.values())

# c. 请循环输出所有的key和value
# for key, value in dic.items():
#     print(key, value)

# d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
# dic.setdefault("k4", "v4")
# print(dic)

# dic[‘k4‘] = "v4"
# print(dic)
# e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
# dic1 = {"k1": "alex"}
# dic.update(dic1)
# print(dic)

# dic[‘k1‘] = "alex"
# print(dic)
# f. 请在k3对应的值中追加一个元素 44,输出修改后的字典
# dic["k3"].append(44)
# print(dic)

# g. 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
# dic["k3"].insert(0, 18)
# print(dic)


# 3
# av_catalog = {
#     "欧美": {
#         "www.youporn.com": ["很多免费的,世界最大的", "质量一般"],
#         "www.pornhub.com": ["很多免费的,也很大", "质量比yourporn高点"],
#         "letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"],
#         "x-art.com": ["质量很高,真的很高", "全部收费,屌丝请绕过"]
#     },
#     "日韩": {
#         "tokyo-hot": ["质量怎样不清楚,个人已经不喜欢日韩范了", "verygood"]
#     },
#     "大陆": {
#         "1024": ["全部免费,真好,好人一生平安", "服务器在国外,慢"]
#     }
# }
# a,给此 ["很多免费的,世界最大的","质量一般"]列表第二个位置插入一个  元素:‘量很大‘。
# av_catalog["欧美"]["www.youporn.com"].insert(1, "量很大")
# print(av_catalog)

# b,将此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表的 "全部收费,屌丝请绕过" 删除。
# del(av_catalog["欧美"]["x-art.com"][1])
# print(av_catalog)

# c,在此 ["质量很高,真的很高","全部收费,屌丝请绕过"]列表中添加"金老板最喜欢这个"。
# (av_catalog["欧美"]["x-art.com"]).append("金老板最喜欢这个.")
# print(av_catalog)

# d,将此["质量怎样不清楚,个人已经不喜欢日韩范了","verygood"]列表的 "verygood"全部变成大写。
# av_catalog["日韩"]["tokyo-hot"][1] = av_catalog["日韩"]["tokyo-hot"][1].upper()
# print(av_catalog)

# e,给‘大陆‘ 对应的字典添加一个键值对 ‘1048‘ :[‘一天就封了‘]
# av_catalog["大陆"].setdefault("1048", "一天就疯了")
# print(av_catalog)

# f,删除此"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"]键值对。
# del (av_catalog["欧美"]["letmedothistoyou.com"])
# print(av_catalog)

# g,给此["全部免费,真好,好人一生平安","服务器在国外,慢"]列表的第一个元素,加上一句话:‘可以爬下来‘
# av_catalog["大陆"]["1024"].insert(0, "可以爬下来")
# # print(av_catalog)


# 4
# 有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {‘k‘:1,‘k1‘:2....}  (升级题)
# str1 = "k:1|k1:2|k2:3|k3:4"
# dic = {}
# str2 = str1.split("|")
# for c in str2:
#     str3, str4 = c.split(":")
#     dic[str3] = int(str4)
# print(dic)
# 5
# 有如下值li= [11,22,33,44,55,66,77,88,99,90],
# 将所有大于 66 的值保存至字典的第一个key中,
# 将小于 66 的值保存至第二个key的值中。
# 即: {‘k1‘: 大于66的所有值列表, ‘k2‘: 小于66的所有值列表}
# li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
# k1 = []
# k2 = []
# dic = {}
# for el in range(len(li)):
#     if (li[el]) < 66:
#         k1.append((li[el]))
#     elif (li[el]) > 66:
#         k2.append((li[el]))
#     dic[‘k1‘] = k1
#     dic[‘k2‘] = k2
# print(dic)
# 6
# goods = [{"name": "电脑", "price": 1999},
#          {"name": "鼠标", "price": 10},
#          {"name": "游艇", "price": 20},
#          {"name": "美女", "price": 998}]
# # 1
# a = 0
# count = 1
# while count < 5:
#     print("%d, %s, %s" % (count, goods[a]["name"], goods[a]["price"]))
#     a += 1
#     count += 1
# 2 3 4
# while 1:
#     yonghu = input("请输入序号(1-4)(输入Q退出):")
#     if yonghu =="q"or yonghu == "Q":
#         break
#     elif int(yonghu) in [1, 2, 3, 4]:
#         n = int(yonghu)-1
#         a, b = goods[n].values()
#         print(a, b)
#     else:
#         print("输入有误,请重新输入")

 

字典的学习

标签:操作   str   split   []   set   变量   最大的   电脑   com   

原文地址:https://www.cnblogs.com/lingcai/p/9403736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!