今日内容(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 字典的更多相关文章

  1. day05——字典

    day05 字典 字典-- dict: 字典无序的,可变的数据类型 用于存储大量数据,字典要比列表快,将数据和数据之间进行关联 lst1 = ['常鑫','李文虎','张宇'] # 姓名 lst2 = ...

  2. python day05字典

    一.字典 1.字典的结构: a={key:value,key2:value},key是不可变的,value是可变的. 例子:dic = {123: 456, True: 999, "id&q ...

  3. day05 字典 dict

    今日内容: 字典 成对的保存数据. 以key:value的形式保存 用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开 字典中的key是不能重复的. 存储是依靠着key来计算的. ...

  4. 记录我的 python 学习历程-Day05 字典/字典的嵌套

    一.字典的初识 为什么要有字典 字典与列表同属容器型数据类型,同样可以存储大量的数据,但是,列表的数据关联性不强,并且查询速度比较慢,只能按照顺序存储. 什么是字典 先说一下什么叫可变与不可变的数据类 ...

  5. Python全栈--目录导航

    这里更新以Python语言作为基础,想要成为全栈工程师需要掌握的技能... Python基础语法 day01 初识Python day02 while循环 运算符和编码 day03 字符串 day04 ...

  6. python学习之旅

    python学习分类 python基础    +- day01——python初始.变量.常量.注释.基础数据类型.输入.if day02——while.字符串格式化.运算符.编码初识 day03—— ...

  7. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

  8. 【DG】Oracle_Data_Guard官方直译

    [DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍   Oracle Data Guard概念和管理10g版本2   Oracle Data Guard ...

  9. DVWA实验之Brute Force(暴力破解)- Low

    DVWA实验之Brute Force-暴力破解- Low     这里开始DVWA的相关实验~   有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...

随机推荐

  1. UTF-8格式txt文件读取字节前三位问题

    今天试着读取一份UTF-8格式的txt文件,内容如下 12345 但是每次读取之后转为String类型,输出字符串长度总是为6,并且第一位打印在控制台后不占任何空间. 经过debug查看字节码后发现, ...

  2. Ingenious Lottery Tickets 【排序】

    问题 I: Ingenious Lottery Tickets 时间限制: 1 Sec  内存限制: 128 MB 提交: 590  解决: 135 [提交] [状态] [命题人:admin] 题目描 ...

  3. Bytom合约预编译

    比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在开发合 ...

  4. Learning-Python【22】:面向对象初识

    一.面向过程:是一种编程思想,核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么,基于该编程思想写程序就好比在设计一条流水线,是一种机械式的思维方式 优点:把复杂问题流程化,进而简 ...

  5. 扩展的GM命令

    命令 说明 例子 .rl all 重载核心所有自定义数据表   .rl item 重载item_template   .backup a 备份Auth数据库   .backup c 备份Charact ...

  6. read_csv 的 names 和 index_col 参数作用

  7. Windows下使用CMD命令进入和退出MySQL数据库

    一.进入 1.在CMD命令窗口敲入命令 mysql -hlocalhost -uroot -p 后按回车(注意这里的"-h"."-u"."-p&quo ...

  8. angular 2 animation 结构笔记 version 4.2.2

    import { Component, Input, OnInit } from '@angular/core'; import { trigger, state, style, animate, t ...

  9. Servlet、Listener和Filter

    Servlet: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式 ...

  10. fast-route的使用

    <?php require 'vendor/autoload.php'; // 通过 FastRoute\simpleDispatcher() 方法定义路由,第一个参数必须是 FastRoute ...