day05 字典
今日内容(dict)
1.基本格式
2.独有方法
3.公共
4.强制转换
1.基本格式
- 字典(可变类型,3.6之后是有序)
- 帮助用户去表示一个事物的信息(事物是有多个属性)
- 键值不能为集合,列表,字典等不可hash类型
data={键:值,键:值}
info={"name":"Gao","age":18,"hobby":"music"}#键值对
info['name']
info['age']
1.独有方法
1.keys()
获取字典中所有的键 name age hobby
#列表 / 字典 内部可以修改删除===>不可以哈希
====>
#键值创建后,就不能被修改 ===>列表 / 字典 不能当做键值
info={"name":"Gao","age":18,"hobby":"music"}#键值对
print(info.keys())
print(type(info.keys()))
#dict_keys(['name', 'age', 'hobby'])
#<class 'dict_keys'>
#打印出类似列表的一组key值
2.values()
info={"k1":"v1","k2":"v2"}
print(info.values())
print(type(info.values()))
#dict_values(['v1', 'v2'])
#<class 'dict_values'>
#打印出类似列表的一组value值
3.items()
得到的是多个元祖
#获取字典中所有的键值对
for v1,v2 in info.items():
print(v1,v2)
#('name', 'Gao')
#('age', 18)
#('hobby', 'music')
info={"name":"Gao","age":18,"hobby":"music"}#键值对
print(info.items())
#dict_items([('name', 'Gao'), ('age', 18), ('hobby', 'music')])
4.get(键)
取对应key的value值
get相比于index 会自行判断不会报错
u1=["alex",'123',11]
print(u1[123])
#报错 超出范围
info={"k1":"v1","k2":"v2"}
print(info['k111'])
#报错
print(info.get("k111"))#None 空
#None 表示空类型
print(info.get("k111",666)) #如果有值则返回666
#666
5.pop("key")
info={"k1":"v1","k2":"v2"}
result=info.pop('k2')#V2
print(result,info)
#v2 {"k1":"v1"}
#del info['k1']
6.update():更新
#没有就添加,有就更新
info={"k1":"v1","k2":"v2"}
info.update("k3":"v3","k4":"v4")
print(info)
#{"k3":"v3","k4":"v4"}
2.公共方法
1.len()
2.index
索引值就是键值
3.切片/步长:[没有]
因为字典是无序的
4.for:
for key1 in info.keys():
print(keys)
for v1 in info.keys():
print(v1)
for k,v in info.items():
print(k,v)
for val in info:
# val==key
#for 循环默认输出的是键值
5.修改(存在就修改,不存在,就添加)
#1.改值
info['age']=19
print(info)
#2.改键
#删除后再增加
del info['name']
info['XXXX']="x1"
print(info)
6.删除del
del info['name']
print(info)
3.强制转换dict()
4.练习
#1.用户输入键,输出对应的键值
# info={"name":"Gao","age":18,"hobby":"music"}
#键值对
# #print(info.items())
# for k1,v1 in info.items():
# print(k1,v1)
# val=input("请用户输入:")
# print(info[val])
#2.用户输入键key后 输出value 当用户输入"n"时候结束
# info={}
# while True:
# k=input("请输入键值:")
# if k=='n':
# break
# v=input("请输入value:")
# info[k]=v
# print(info)
#3.将mess内容放到字典中以info={"k1":"v1","k2":"v2","k3":"v3"}形式输出
mess="k1|v1,k2|v2,k3|v3"
mess=mess.split(",")
info={}
for ele in mess:
#print(ele)
k1,v1=ele.split('|')
info[k1]=v1
print(info)
#9.创造一个用户列表 直到用户输入N结束,然后让用户输入用户名和密码登录,输入
# user_list=[]
#
# while True:
# u=input("请输入用户名:")
# if u.upper()=="N":
# break
# p=input("请输入密码:")
# info={}
# info['name']=u
# info["password"]=p
# user_list.append(info)
#
# print("请登录:")
# count=0
# index=0
# flag=1
# while True:
# name1=input("请输入用户名:")
# pass1=input("请输入密码:")
#
# for ele in user_list:
# if ele["name"]==name1 and ele["password"]==pass1:
# flag=0
# print("登录成功")
# break
# else:
# index += 1
# if index > len(user_list):
# count+=1
# print("输入错误,请重新输入:")
# break
# else:
# print("继续查找")
# continue
# if count > 3 or flag==0:
# break
5.总结
day05 字典的更多相关文章
- day05——字典
day05 字典 字典-- dict: 字典无序的,可变的数据类型 用于存储大量数据,字典要比列表快,将数据和数据之间进行关联 lst1 = ['常鑫','李文虎','张宇'] # 姓名 lst2 = ...
- python day05字典
一.字典 1.字典的结构: a={key:value,key2:value},key是不可变的,value是可变的. 例子:dic = {123: 456, True: 999, "id&q ...
- day05 字典 dict
今日内容: 字典 成对的保存数据. 以key:value的形式保存 用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开 字典中的key是不能重复的. 存储是依靠着key来计算的. ...
- 记录我的 python 学习历程-Day05 字典/字典的嵌套
一.字典的初识 为什么要有字典 字典与列表同属容器型数据类型,同样可以存储大量的数据,但是,列表的数据关联性不强,并且查询速度比较慢,只能按照顺序存储. 什么是字典 先说一下什么叫可变与不可变的数据类 ...
- Python全栈--目录导航
这里更新以Python语言作为基础,想要成为全栈工程师需要掌握的技能... Python基础语法 day01 初识Python day02 while循环 运算符和编码 day03 字符串 day04 ...
- python学习之旅
python学习分类 python基础 +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...
- 22期老男孩Ptython全栈架构师视频教程
老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...
- 【DG】Oracle_Data_Guard官方直译
[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ...
- DVWA实验之Brute Force(暴力破解)- Low
DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...
随机推荐
- ERROR 1130 (HY000): Host '172.16.1.54' is not allowed to connect to this MySQL server
centos7.5 远程连接数据库报错 问题: [root@db04-54 ~]# mysql -urep -p123 -h172.16.1.51 Warning: Using a password ...
- dockerfile 介绍
Docker简介 Docker项目提供了构建在Linux内核功能之上,协同在一起的的高级工具.其目标是帮助开发和运维人员更容易地跨系统跨主机交付应用程序和他们的依赖.Docker通过Docker容器, ...
- PHP深入浅出之命名空间(Namespace)的使用详解
对于命名空间,官方文档已经说得很详细[查看],我在这里做了一下实践和总结. 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种情况下只 ...
- stlcky footers布局小技巧
sticky-footer解决方案 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果 ...
- 基本设置_common_setting
comment(备注) ID(请勿修改) Param(参数) 说明与格式 积分物品ID设置 1 60000 积分属性虚拟货币,存储在Auth库account表TokenAmount字段. 这里设置积分 ...
- Java Deque 队列 栈
垃圾JDK啊 Deque这个接口,既承担着FIFO的任务,即队列,也承担着LIFO的任务,即栈 目前jdk里面实现了这个接口的类有两个,一个是ArrayDeque,另一个是LinkedList 但是由 ...
- 使用Docker方式创建3节点的Etcd集群
一.简要说明 二.运行容器 三.验证集群 四.运行截图 五.参考链接 一.简要说明 参考etcd官网文档, 在node1.node2.node3三个节点上,分别运行etcd容器,创建etcd集 ...
- Verification of Model Transformations A Survey of the State-of-the-Art 模型转换的验证 对现状的调查
模型驱动工程范式认为软件开发生命周期由工件(需求规范.分析和设计文档.测试套件.源代码)支持,这些工件是表示要构建的系统不同视图的模型.存在一个由模型转换驱动的(半)自动构造过程,从系统的抽象模型开始 ...
- 使用metrics统计接口tps
metrics的简单介绍 metrics是一种性能指标工具,有很多开源工具使用之来来作为其性能监控,如Hadoop,Kafka,Spark,JStorm等. metrics使用最主要有三个东西: Me ...
- fcn+caffe+制作自己的数据集
参考博客: http://blog.csdn.net/jacke121/article/details/78160398 以视网膜血管分割的数据集为例: 训练样本: 训练标签: 标签图的制作依据voc ...