字典的定义

 # Python语言中唯一的类型映射
# 键与值之间用“:”分开
# 项与项之间用“,”分开
person = {"name":"yuan","age":18}
print(person) # {'name': 'yuan', 'age': 18} person = dict(name='yuan',age=18)
print(person) # {'name': 'yuan', 'age': 18} person = dict({"name":"yuan","age":18})
print(person) # {'name': 'yuan', 'age': 18}

字典的特性

 # key-value结构
# key必须可hash、且必须为不可变数据类型、必须唯一
# 可存放任意多个值、可修改、可以不唯一
# 无序

字典的内置函数

长度、循环

 # 字典
dic = {
"k1":"v1",
"k2":"v2"
}
# 长度
print(len(dic)) # # 返回一个包含字典所有key的列表
k = dic.keys()
print(k) # dict_keys(['k1', 'k2'])
# 返回一个包含字典所有value的列表
v = dic.values()
print(v) # dict_values(['v1', 'v2'])
# 返回一个包含字典所有(键,值)元祖的列表
i = dic.items()
print(i) # dict_items([('k1', 'v1'), ('k2', 'v2')])
# 循环
for k in dic.keys():
print(k)
for k,v in dic.items():
print(k)
print(v)
for k in dic:
print(k)

清空、复制、创建

 # 清空
dic.clear()
print(dic) # {}
dic = {
"k1":"v1",
"k2":"v2"
}
# 复制
dic2 = dic.copy()
print(dic2) # {'k1': 'v1', 'k2': 'v2'}
# 根据序列,【创建字典】,并指定统一的值
dic2 = {}.fromkeys(["k1",56,""],123)
print(dic2) # {'k1': 123, 56: 123, '999': 123}

查看

 # 字典
dic = {
"k1":"v1",
"k2":"v2"
}
# 根据key,获取字典中对应的值
# 若key不存在字典中,则报错
v = dic['k1']
print(v) # v1
# 根据key,获取字典中对应的值
# 若key不存在字典中,则返回default的值
# dict.get(key,default = None)
v = dic.get("k1")
print(v) # v1

删除

 # 字典
dic = {
"k1":"v1",
"k2":"v2",
"k4":"v4"
}
# 指定某一个key删除,并打印删除的元素
v = dic.pop("k1")
print(dic) # {'k2': 'v2', 'k4': 'v4'}
print(v) # v1
# 随机删除
k,v = dic.popitem()
print(dic) # {'k2': 'v2'}
print(k,v) # k4 v4

新增、修改

 # 字典新增、修改
dic = {
"k1":"v1",
"k2":"v2"
}
# 若key在字典中不存在,则新增
# 若key在字典中存在,则更新
dic['kn'] = 'vn'
print(dic) # {'k1': 'v1', 'k2': 'v2', 'kn': 'vn'}
# 设置值,若key在字典中不存在,新增
# 若key在字典中存在,返回原来的值,
v = dic.setdefault("k3","")
print(v) #
print(dic) # {'k1': 'v1', 'k2': 'v2', 'kn': 'vn', 'k3': '123'} # dic.dic2将字典dic2的键值对添加到字典dic中
dic.update({"k2":""})
print(dic) # {'k1': 'v1', 'k2': '3546', 'kn': 'vn', 'k3': '123'}
dic.update(k2="",k5 = 345)
print(dic) # {'k1': 'v1', 'k2': '789', 'kn': 'vn', 'k3': '123', 'k5': 345}

例题:三级菜单

需求:
  可依次选择进入各子菜单
  可从任意一层往回退到上一层
  可从任意一层退出程序
  所需新知识点:列表、字典
 # 字典
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{}
},
'上地':{
'百度':{}
}
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{}
},
'天通苑':{},
'回龙观':{}
},
'朝阳':{},
'东城':{}
},
'上海':{
'闵行':{
'人民广场':{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{}
},
'山东':{}
} # 列表
list = []
# 输入字母“q”为返回上一层,
# 输入字母“b”为退出
while len(list) < 4:
# 输出
lLength = len(list)
if lLength ==0:
iItem = menu
elif lLength == 1:
iItem = menu[list[0]]
elif lLength == 2:
iItem = menu[list[0]][list[1]]
elif lLength == 3:
iItem = menu[list[0]][list[1]][list[2]]
list_k = [] # 列表,用于存储,显示关键字
for k in iItem:
list_k.append(k)
# 判断子地区列表是否为空---开始
if len(list_k) == 0:
print("当前地区下,已无子地区可选")
break
else:
print(list_k)
dq = input("请输入要选择的地区:")
# 对输入内容进行判断---开始
if dq == 'q':
list.pop()
elif dq == 'b':
print("您已退出!")
break
elif dq in list_k:
list.append(dq)
else:
print("输入地区有误!")
break
# 对输入内容进行判断---结束
# 判断子地区列表是否为空---结束
else:
print("当前已无地区可选!")
print("---The end---")

Python开发——数据类型【字典】的更多相关文章

  1. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  2. python初识数据类型(字典、集合、元组、布尔)与运算符

    目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...

  3. Python开发爆破字典

    这里只是分享一下Python如何生成爆破字典 关于爆破工具编写我会在下一篇提到 其实有了爆破字典的话,直接使用Burp,Hydra等一些工具就可以做爆破了! Burp的使用在我以前的博客中有写过,至于 ...

  4. Python基本数据类型——字典

    字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...

  5. Python开发——数据类型【字符串】

    字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...

  6. Python开发——数据类型【列表】

    列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...

  7. Python开发——数据类型【字符串格式化】

    字符串格式化之——% # 字符串格式化 msg = 'I am %s , My hobby is %s'%('yuan','play') print(msg) # I am yuan , My hob ...

  8. python开发笔记-字典按值排序取前n个key值

    场景举例: 假如我们有某个班级的语文成绩数据,格式为字典,其中字典key为学生姓名,value为学生成绩: 那么,如何获得单科成绩排名前3的学生姓名? 代码如下:--数据样例,方便测试 def dic ...

  9. Python开发——数据类型【数字】

    布尔型 bool型只有两个值:True 或 False 我们将bool值归类为数字,习惯上:1表示true,0表示false 整型 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2* ...

随机推荐

  1. py-day3-1 python 风湿理论之函数即变量

    # 风湿理论之函数即变量 def foo(): print('from foo') bar() def bar(): print('from bar') foo() from foo from bar ...

  2. 【python】*与**

    1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放dict,否则报错. 如: 1 def multiple(arg, *args): 2 print "arg: ", ...

  3. Excel函数之sumifs应用

    这个函数是用来进行多条件求和的一个函数 示例:根据表格求出“鼎盛书店”2012年度所有图书小计的总和,这里就用sumifs计算 首先定位结果输出单元格,祭出函数. sum_range参数就是筛选后需要 ...

  4. hbase hbck命令

    hbase hbck 只做检查 hbase hbck -fixMeta 根据region目录中的.regioninfo,生成meta表` hbase hbck -fixAssignments 把met ...

  5. python3学习笔记四(列表1)

    参考http://www.runoob.com/python3/python3-list.html 序列 python包含6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和x ...

  6. django 多线程下载图片

    example1: from multiprocessing.dummy import Pool as ThreadPool #多线程 import time import urllib2 urls ...

  7. [sharepoint]根据用户名获取该用户的权限

    写在前面 这样的一个场景,客户端请求sharepoint的rest api,但不允许传输用户的密码,使用的是证书认证的方式,但这样所有的用户用的是同一个证书,这样造成的结果就是无法识别该用户是否有操作 ...

  8. Android Studio设置连续按两次退出APP

    主要是在onKeyDown方法中进行操作,直接上代码. private long mTime; @Override public boolean onKeyDown(int keyCode, KeyE ...

  9. 【Linux】【Jenkins】邮件发送失败的问题javax.mail.MessagingException: Could not connect to SMTP host:

    javax.mail.MessagingException: Could not connect to SMTP host: smtp.126.com,port:25 解决方案: 之前用的是126邮箱 ...

  10. SpringBoot 之热部署

    默认情况下, 我们修改 class 或者 修改模板文件(templates目录 下面的文件) 等动态资源, 都不会立即自动生效. 在IDEA中, 我通过Ctrl + F9 , 仍然是无效. 当然, 静 ...