字典

1.查询内存地址

a = 10

print(id(a))

b = a

print(id(b))

b = 15

print(id(b))

2. 数据类型

不可变类型:整型、字符串、元组

可变类型:列表、字典

字典的值可以是任意类型,键只能是不可变类型。

字典存储是无序的。例如:

dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

print(dic)

print(dic['name'])

#dic = {1:'ysw','age':36,'hobby':'game','is_handsome':True}

#print(dic)

#print(dic[1])          #键改为整型没有问题

#dic = {[1,2]:'ysw','age':36,'hobby':'game','is_handsome':True}

#print(dic)

#print(dic[[1,2]])         #键改为列表出现问题

#dic = {'name':'ysw','age':36,'hobby':{'game_name':'wow','level':'20'},'is_handsome':True}

#print(dic['hobby'])

#dic = {{'1':'123'},'age':36,'hobby':{'game_name':'wow','level':'20'},'is_handsome':True}

#print(dic)

#字典两大特点:无序;键唯一

#dic = {'age':'ysw','age':36,'hobby':'game','is_handsome':True}

#print(dic)

3.字典的两种创建方式:

#dic1 = {'name':'ysw'}

#dic2 = dict((('name','ysw'),))

4.对应操作

  (1)增

dic1 = {'name':'ysw'}

dic1['age'] = 18

print(dic1)

dic1['name'] = 18

print(dic1)

#没有重复的键就添加,有重复的键就替换数值

------------------------------

dic1 = {'name':'ysw'}

dic1['age'] = 18

print(dic1)

dic1.setdefault('age',36)

print(dic1)

#dic1.setdefault('hobby','game')

#print(dic1)

#setdefault的特点:没有重复的键就添加,并返回添加键的值;有重复的键就没有变化,并返回字典中重复键的值。

#ret = dic1.setdefault('age',36)

#print(ret)

#ret2 = dic1.setdefault('hobby','game')

#print(dic1)

#print(ret2)

  (2)查

利用键名来查找键的值

dic3 = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

print(dic3['name'])

print(dic3.keys())  #查找字典中所有的键名,结果并不是列表类型,可以通过list命令转换为列表

print(list(dic3.keys()))

print(dic3.values())  #查看字典中所有键对应的值,结果并不是列表类型,可以通过list命令转换为列表

print(list(dic3.values()))

print(dic3.items())  #查看字典中所有键值对 ,结果并不是列表类型,可以通过list命令转换为列表

print(list(dic3.items()))

  (3)改

dic1 = {'name':'ysw'}

dic1['name'] = 18

print(dic1)

-------------------------------------------------------

dic4 = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}

dic5 = {'1':'111','2':'222','age':'35'}

dic4.update(dic5)  #dic5与dic4没有重复的将dic5添加到dic4,有重复的就更新键值对;dic5保持不变。

print(dic4)

print(dic5)

#删:
# dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}
# del dic['name'] #del 删除指定键值对
# print(dic) #dic = {'name':'ysw','age':36,'hobby':'game','is_handsome':True}
# dic.clear() #clear清空字典
# print(dic) # ret = dic.pop('age') #pop删除指定键值对,并返回删除的键值对的值
# print(ret)
# print(dic) # a = dic.popitem() #popitem随机删除一组键值对,并以元组方式返回值
# print(a,dic) # del dic #删除整个字典,内存中不再有该字典
# print(dic) #其他操作以及涉及到的方法:
# dic6 = dict.fromkeys(['host1','host2','host3'],'test')
# print(dic6) #字典嵌套
# av_catalog = {
# "欧美":{
# "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
# "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
# "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
# "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
# },
# "日韩":{
# "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
# },
# "大陆":{
# "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
# }
# }
# #
# # av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
# # print(av_catalog["大陆"]["1024"])
# # #ouput
# # ['全部免费,真好,好人一生平安', '服务器在国外,慢,可以用爬虫爬下来']
# av_catalog['欧美']['www.youporn.com'][1] = '高清无码'
# print(av_catalog)
#字典排序 根据键的值进行排列
# dic = {5:'555',2:'666',4:'444'}
# print(sorted(dic))
# print(sorted(dic.values()))
# print(sorted(dic.items())) #字典的遍历
# dic5 = {'name':'ysw','age':36}
# for i in dic5:
# print(i)
# print(i,dic5[i]) #推荐这一种方法,效率高
# for i in dic5.items():
# print(i)
# for i,v in dic5.items():
# print(i,v)

python学习:字典的更多相关文章

  1. Python学习--字典

    在Python中通过名字来引用值的数据结构称为映射(mapping).字典是Python中唯一内建(Python解释器本身支持,不需要import)的映射类型.字典中的值没有特殊的顺序,都存储在一个特 ...

  2. python学习——字典和集合

    一.字典 1)字典介绍 字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种不可变的结构类型也称之为映射.字典类型是Python中唯一內建的映射类型. 1)字典操作 &qu ...

  3. Python学习字典.基础三

    元组   Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组中要定义的元组中只有一个元素需要再元素后面加逗号,用来消除数学歧义.例 t=(1,)   ...

  4. Python学习——字典

    字典 字典是另一种可变容器模型,且可存储任意类型对象. 1.创建字典 字典由键和对应值成对组成.每个键与值之间用:隔开,每对之间逗号隔开. 每个键应当互不相同,值可以相同.若同时出现两个相同的键,则后 ...

  5. Python学习————字典的增删改查

    增加:dic1['KEY'] = value -->若之前有KEY,则会覆盖.若没有KEY,则新增至尾处dic.setdefault('KEY',value/None) --->若之前有K ...

  6. Python学习-字典练习:简单通讯录

    功能要求: 查询联系人,输入姓名,可以查询当前通讯录里面的联系人信息,若联系人存在,则输出联系人信息,若不存在,则告知 插入联系人,可以向通讯录中新建联系人,若联系人已经存在,则询问是否修改联系人信息 ...

  7. Python学习基础笔记(全)

    换博客了,还是csdn好一些. Python学习基础笔记 1.Python学习-linux下Python3的安装 2.Python学习-数据类型.运算符.条件语句 3.Python学习-循环语句 4. ...

  8. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  9. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  10. Python学习笔记——基础篇2【第三周】——计数器、有序字典、元组、单(双)向队列、深浅拷贝、函数、装饰器

    目录 1.Python计数器Counter 2.Python有序字典OrderredDict 3.Python默认字典default 4.python可命名元组namedtuple 5.Python双 ...

随机推荐

  1. k8s部署etcd数据库集群

    ⒈下载 https://github.com/etcd-io/etcd/releases ⒉解压 tar -zxvf etcd-v3.3.12-linux-amd64.tar.gz ⒊移动可执行文件及 ...

  2. *42. Trapping Rain Water 接雨水

    1. 原始题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这 ...

  3. WPF入门之一APP.XAML

    WPF运行之后,App.xaml是应用的声明起始点. 一.指定入口 通过指定Application 的StartupUri属性,指示了启动应用的时候,加载哪个窗口或网页. 最常见的就是将默认的Main ...

  4. [SDOI2009]HH的项链-树状数组/线段树

    树状数组: #include<bits/stdc++.h> using namespace std; ; int id[maxn],tree[maxn],vis[maxn],num[max ...

  5. Go语言--数组、切片、

    3.1 数组--固定大小的连续空间 3.1.1 声明数组 写法 var 数组变量名 [元素数量]T 说明: 变量名就是使用时的变量 元素的数量可以是表达式,最后必须为整型数值 T 可是是任意基本类型, ...

  6. python正则表达式--分组、后向引用、前(后)向断言

    无名.有名分组 (1)正则表达式—无名分组 从正则表 达式的左边开始看,看到的第一个左括号“(”表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全局分组(就是索引号为 ...

  7. 二级导航 js

    $(function(){ $(".classify dl dd").mouseover(function(){ $(this).addClass("on"); ...

  8. ad9361自测试校准

    #include "config.h" #include "CONFIG_FPGA_ALL.h" #include "xparameters.h&qu ...

  9. 2018开源中国最受欢迎的中国软件MyBatis-Plus

    2018开源中国最受欢迎的中国软件MyBatis-Plus 官方网址:https://mp.baomidou.com 中国软件,中文文档 什么是MyBatis-Plus? 进入官方第一句话:为简化开发 ...

  10. 非递归并查集——zoj4109

    卡常卡的我难受 非递归并查集好像写起来常数小一点 int F[maxn]; int Find(int x){ int r = x; while (F[r] != r)r = F[r]; int i = ...