特点:
无序状态
键唯一
 
不可变类型:字符串、整型、元组
可变类型:列表、字典
 
字典创建
第一种:
dic1={'name':'Nick',"age":'','sex':'man'}
print(dic1['name']) ---------------->Nick

第二种:

dic2=dict((('name','Nick'),('age',18)))
print(dic2) ---------------------->{'name': 'Nick', 'age': 18}

第三种:

dic3=dict([['name','Nick'],['age',18]])
print(dic3) ------------->{'name': 'Nick', 'age': 18}

1.新增

键有则修改,无则新增
如:
dic1={'name':'Nick',"age":'','sex':'man'}
dic1['num']=15755055016
print(dic1) ------>{'name': 'Nick', 'age': '', 'sex': 'man', 'num': 15755055016}
dic1={'name':'Nick',"age":'','sex':'man'}
dic1['age']=15
print(dic1) ------->{'name': 'Nick', 'age': 15, 'sex': 'man'}
setdefault方式
键存在,则不做动作
键不存在,则在字典中新增
如:
键存在:
dic1={'name':'Nick',"age":'','sex':'man'}
dic1.setdefault('age',34)
print(dic1) --------->{'name': 'Nick', 'age': '', 'sex': 'man'}

键不存在:

dic1={'name':'Nick',"age":'','sex':'man'}
dic1.setdefault('num',15755055016)
print(dic1) ------------>{'name': 'Nick', 'age': '', 'sex': 'man', 'num': 15755055016}

setdefault是有返回值的

返回值中,若在原字典中新增了数据,则返回新增的值
若原字典存在这个键,则返回原字典的值
如:
新增

dic1={'name':'Nick',"age":'','sex':'man'}
b=dic1.setdefault('num',15755055016)
print(b) --------->15755055016

键存在

dic1={'name':'Nick',"age":'','sex':'man'}
b=dic1.setdefault('age',24)
print(b) -------->18

2.查
通过键去查询值

print(dic1['name'])

打印字典中所有的键

dic1.keys() ------>dict_keys(['name', 'age', 'sex'])

结果非列表类型,若想要列表输出,需要转化

list(dic1.keys()) -------->['name', 'age', 'sex']

3.改
dic1更新dic,有的会被覆盖,没有的会被新增

dic1={'name':'Nick',"age":18,'sex':'man'}
dic2=dict((('name','Nick'),('age',19),('num',15755055016)))
dic1.update(dic2)
print(dic1) --------->{'name': 'Nick', 'age': 19, 'sex': 'man', 'num': 15755055016}
print(dic2) --------->{'name': 'Nick', 'age': 19, 'num': 15755055016}
4.删
删除字典中指定键值对

dic1={'name':'Nick',"age":18,'sex':'man'}
del dic1['name']
print(dic1) ------>{'age': 18, 'sex': 'man'}

删除字典中指定键值对,会有返回值
dic1={'name':'Nick',"age":18,'sex':'man'}
a=dic1.pop('age')
print(a) ------>18
清空整个字典
dic1={'name':'Nick',"age":18,'sex':'man'}
dic1.clear()
print(dic1) ------>{} 表示字典内的键值对被清空,但该字典仍然在内存中

随机删除键值对

dic1={'name':'Nick',"age":18,'sex':'man'}
a=dic1.popitem()
print(a,dic1) -------->('sex', 'man') {'name': 'Nick', 'age': 18}
删除字典
dic1={'name':'Nick',"age":18,'sex':'man'}
del dic1
print(dic1) ------->报错,因为dic1字典被删除,不存在了
5.其他操作涉及的方法
dic=dict.fromkeys(['host1','host2','host3'],'name')
print(dic)------>{'host1': 'name', 'host2': 'name', 'host3': 'name'} #新建字典方式,但存在问题,涉及深浅拷贝,这里只会浅拷贝
字典的嵌套
输出时,遇到字典类型就用键,遇到列表就用位置
av_catalog = {
"欧美":{
"www.youporn.com": ["很多免费的,世界最大的","质量一般"],
"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
},
"日韩":{
"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
},
"大陆":{
"":["全部免费,真好,好人一生平安","服务器在国外,慢"]
}
}
av_catalog['欧美']["www.youporn.com"][1]='高清'
print(av_catalog) ------>可修改成功
排序    (依据键值进行排序)
dic={'':'','':'','':'','':''}
print(sorted(dic)) ---->['', '', '', '']
print(sorted(dic.values())) ------>['', '', '', '']
print(sorted(dic.items())) ------>[('', ''), ('', ''), ('', ''), ('', '')]
遍历
打印键
for i in dic1:
print(i) ------>name age sex
打印键与值
print(i,dic1(i))   
name Nick
age 18
sex man 直接快速高效的方法
for i,v in dic1.items():
print(i,v)

name Nick
age 18
sex man 需要转换,耽误时间,效率低 打印键值对
for i in dic1.items():
print(i) ------>
('name', 'Nick')
('age', 18)
('sex', 'man')

Python学习(004)-字典{}的更多相关文章

  1. Python学习笔记(字典)

    今天学习一个python中的基本类型--字典(dictionary) 字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息.在字典中,名字叫做“键”,对应的内容信息叫做“值”.字典 ...

  2. python学习09——字典(3)

    今天写了一道python字典题目,用了上次字典(2)中的方法,代码如下: json = {', 'IP':'10.0.0.1'} def find_value(themap, word): if wo ...

  3. Python学习07——字典(2)

    笨办法学Python第40节,上次用的第三版的书,这次是第四版的书. 这一节的代码如下: cities = {'CA':'San Francisco', 'MI':'Detroit', 'FL':'J ...

  4. python学习05——字典

    笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件 ...

  5. Python学习笔记-字典

    字典是python中唯一内建的映射类型. 创建字典phonebook = {'Alice':'2341','Beth':'9102'} 可以使用dict通过其他映射或者键值对的序列建立字典.关键值参数 ...

  6. Python学习之字典详解

    在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在c++中有map的概念,也就是映射,在python中也提供了内置的映射类型--字典.映射其实就是一组key ...

  7. python学习:字典排序

    按字典值排序   按照字典value排序,类似sort -k 命令   import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.ite ...

  8. python学习之字典(Dictionary)练习

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型 字典中分为键值对 , key 类型需要时被哈希. value 类型可以是 字符串.数字.元组等其他容器模 ...

  9. 从0开始的Python学习004小的总结与补充

    没有时间?快速阅读: Python确实是一种十分精彩又强大的语言. Python是程序.脚本或者软件 python helloworld.py运行你的Python help()帮助你的Python 命 ...

随机推荐

  1. POJ 3667 Hotel(线段树+区间合并)

    http://poj.org/problem?id=3667 题意: 有N个房间,M次操作.有两种操作(1)"1a",表示找到连续的长度为a的空房间,如果有多解,优先左边的,即表示 ...

  2. UVa 1620 懒惰的苏珊(逆序数)

    https://vjudge.net/problem/UVA-1620 题意:给出一个序列,每次可以翻转4个连续的数,判断是否可以变成1,2,3...n. 思路:考虑逆序数,通过计算可以得出每次翻转4 ...

  3. (02) 任务(Jobs)和触发器(Triggers)

    Quart 的 API Quartz API 中的关键接口和类如下: IScheduler-与调度器(scheduler)进行交互的主要 API: IJob-被组件继承和实现,由调度器来执行的接口: ...

  4. 适用于目前环境的bug记录

    问测试,bugtracker.JIRA,你们用起来啊? 难道bugtracker/JIRA只有测试用吗? 截屏忽略,只有测试人员自己提bug,开发不管不顾,解决了也不关闭bug,bug提得太多,还嫌测 ...

  5. 用java代码将数组元素顺序颠倒

    package test; public class Recover { public int[] reverse(int[] a) { int[] b = new int[a.length]; in ...

  6. 棋盘覆盖问题(算法分析)(Java版)

    1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...

  7. JDK并发工具之同步控制

    一.synchronized的功能扩展:重入锁(java.util.concurrent.locks.ReentrantLock) 重入锁可以完全替代synchronized关键字.在JDK 5.0的 ...

  8. 20170112xlVBA查询SQL

    Sub NextSeven_CodeFrame() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAlerts = Fal ...

  9. PHP函数总结 (二)

    <?php header('content-type:text/html;charset=utf8');// 只要声明的函数在脚本中可见,就可以通过函数名在脚本的任何位置调用echo table ...

  10. python-day21--sys模块

    sys模块是与python解释器交互的一个接口 1.sys.argv           命令行参数List,第一个元素是程序本身路径     # 传参 应用场景:权限控制 2.sys.path    ...