Python开发——数据类型【字典】
字典的定义
# 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开发——数据类型【字典】的更多相关文章
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- python初识数据类型(字典、集合、元组、布尔)与运算符
目录 python数据类型(dict.tuple.set.bool) 字典 集合 元组 布尔值 用户交互与输出 获取用户输入 输出信息 格式化输出 基本运算符 算术运算符 比较运算符 逻辑运算符 赋值 ...
- Python开发爆破字典
这里只是分享一下Python如何生成爆破字典 关于爆破工具编写我会在下一篇提到 其实有了爆破字典的话,直接使用Burp,Hydra等一些工具就可以做爆破了! Burp的使用在我以前的博客中有写过,至于 ...
- Python基本数据类型——字典
字典 dict 字典是Python的另一种有序的可变数据结构,且可存储任意类型对象. 字典是一种键值对的数据容器,每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典 ...
- Python开发——数据类型【字符串】
字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...
- Python开发——数据类型【列表】
列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...
- Python开发——数据类型【字符串格式化】
字符串格式化之——% # 字符串格式化 msg = 'I am %s , My hobby is %s'%('yuan','play') print(msg) # I am yuan , My hob ...
- python开发笔记-字典按值排序取前n个key值
场景举例: 假如我们有某个班级的语文成绩数据,格式为字典,其中字典key为学生姓名,value为学生成绩: 那么,如何获得单科成绩排名前3的学生姓名? 代码如下:--数据样例,方便测试 def dic ...
- Python开发——数据类型【数字】
布尔型 bool型只有两个值:True 或 False 我们将bool值归类为数字,习惯上:1表示true,0表示false 整型 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2* ...
随机推荐
- Java 的 volatile 修饰符
volatile 修饰符,用于多线程同步 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值.而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存.这 ...
- Hbase Filter过滤器查询详解
过滤器查询 引言:过滤器的类型很多,但是可以分为两大类——比较过滤器,专用过滤器 过滤器的作用是在服务端判断数据是否满足条件,然后只将满足条件的数据返回给客户端: hbase过滤器的比较运算符: LE ...
- Hanlp自然语言处理中的词典格式说明
使用过hanlp的都知道hanlp中有许多词典,它们的格式都是非常相似的,形式都是文本文档,随时可以修改.本篇文章详细介绍了hanlp中的词典格式,以满足用户自定义的需要. 基本格式 词典分为词频词性 ...
- 第六届蓝桥杯省赛 java三羊献瑞
将文字看作一个个变量.根据一开始确定的文字的值进行暴力循环. 三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐 ...
- Custom Grid Columns - FireMonkey Guide
原文 http://monkeystyler.com/guide/Custom-Grid-Columns ack to FireMonkey Topics As we saw in TGrid a F ...
- buffers和cached的区别
原文:https://www.cnblogs.com/kevingrace/p/5991604.html buffers和cached解释 ============================== ...
- html 之 <meta> 标签之http-equiv
语法规则: <meta http-equiv=“参数” content=“参数值” > 1.X-UA-Compatible 文档兼容模式的定义 <meta http-equiv=“X ...
- 爬取WX小程序的数据
方法一: 使用TBS工具,调试跟踪获取URL https://x5.tencent.com/tbs/guide/debug/download.html https://x5.tencent.com/t ...
- linux环境下载和安装scala
Linux下安装Scala和Windows下安装类似,步骤如下: 1.首先访问下载链接:http://www.scala-lang.org/download/默认这里下载的是Windows版本,这时点 ...
- ORM对象关系映射
ORM 总结: ORM:对象关系映射 作用: 1.将定义数据库模型类--> 数据库表 2.将定义数据库模型类中的属性--->数据库表字段 3.将模型对象的操作(add,delete,com ...