python笔记4----字典
1、哈希:
输入任意长度,输出固定长度。
即判断是否哈希,即判断可不可变。
2、创建字典
(1)直接创建:dic={1:'a',2:'b',3:'c'}
(2)dict函数创建:
list=[(1,'a'),(2,'b')]
dic=dict(list1)
#dic={1:'a',2:'b'} list1=[1,2]
list2=['a','b']
dic1=dict(zip(list1,list2))
#dic1={1:'a',2:'b'},zip函数是将两个list映射对应的值
(3)fromkeys函数创建:(当给所有键赋同样的值可以用)
#建立一个空字典,调用它的fromkeys方法,有点多余
{}.fromkeys(['Niuyun','wangdachui','xiaohong'],3000)
#上面多余,可用dict调用该方法,dict是所用字典的类型
dict.fromkeys(['Niuyun','wangdachui','xiaohong'])
#{'Niuyun':None,'wangdachui':None,'xiaohong':None}
3、字典相关操作:假如dic是一个词典
(1)len(dic):返回键-值对的数量
(2)dic[k]:返回键k的值。推荐用dic.get(k),因为dic[k]中若k不存在,则会报错,dic.get(k)得到结果是None。
(3)del dic[k]:删除键为k的项。注意是项。如果在for k,v in dic.items()中删除【del dic[k]】会报错,因为在for中不能随意修改字典大小,故将可key变成列表,变量key。
如:
a = {'a':0,'b':1,'c':2}
keys = list(a.keys())
for k in keys: if k in a: if a[k] == 0: del a[k]
(4)dic.keys():输出所有的键
(5)dic.values():输出所有的值
dic.itervalues():输出所有值的一个迭代器,它没有len属性,与values()区别在此。values输出是一个列表,比较占内存,itervalues()输出是一个迭代器,占内存少。
(6)dic.items():相当于将字典变成列表:比如:
(7)dic.update(dic1):dic为原字典,dic1为更新字典,其中有修改和增加的人员,相当于将dic和dic1合并。
(8)使用min和max函数去找字典值中的最大值和最小值,
a,b=max(zip(dic.values(),dic.keys()))【此处是找dic值的最大值,并返回b为其对应的键值】
a,b=max(zip(dic.keys(),dic.values())) 【此处是找dic键值的最大值,并返回a 为其对应的值。】
(9)对字典的值倒序排序:
sorted(dic.items(),key=labmda item:item[1] ,reverse=True)
4、一个小例子:
将列表plist=[('AM','American','78.51'),('BA','Banana','184.76'),('CAT','categary','872')]的缩写项和数字项提取出来放入字典,即0和2项。
方法1:用zip方法
plist=[('AM','American','78.51'),('BA','Banana','184.76'),('CAT','categary','')]
list1=[]
list2=[]
for i in range(len(plist)):
list1.append(plist[i][0])
list2.append(plist[i][2])
dic1=dict(zip(list1,list2))
print(dic1)
方法2:直接序列解包
plist=[('AM','American','78.51'),('BA','Banana','184.76'),('CAT','categary','')]
dic2={}
for data in plist:
dic2[data[0]]=data[2]
print(dic2)
python笔记4----字典的更多相关文章
- Python笔记之字典循环
Python笔记之字典循环 1.问题 Python是一门比较好入门的编程语言,但是入门简单,当然坑也是有的,今天就来介绍一个我遇到的坑吧,也是很简单的一个,就是当时脑子有点转不过弯来了. 先看代码 ...
- Python笔记4——字典的一些基本操作
#字典 key-value #添加 my_family= {"father": "weihaiqing", "mother": " ...
- python笔记-dict字典的方法2
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' 概述: 使用键值(key-value)存储,具有极快的查找速度 注意:字典是无序的 key的特性: 1. ...
- python笔记-dict字典的方法
#!/usr/bin/env python #-*- coding:utf-8 -*- #打印0001-9999的数字 for i in range(9999): s = "%04d&quo ...
- Python笔记:字典的fromkeys方法创建的初始value同内存地址问题
dict中的fromkeys()函数可以通过一个list来创建一个用同一初始value的dict. d = dict.fromkeys(["苹果", "菠萝"] ...
- 嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的42-45讲 {字典}
#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=1021108 ...
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- Python笔记——基本数据结构:列表、元组及字典
转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...
- python学习笔记(三)---字典
字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
随机推荐
- 【微软2017年预科生计划在线编程笔试第二场 A】Queen Attack
[题目链接]:http://hihocoder.com/problemset/problem/1497 [题意] 给你n个皇后; 然后问你其中能够互相攻击到的皇后的对数; 皇后的攻击可以穿透; [题解 ...
- 链表的原理及java实现
一:单向链表基本介绍 链表是一种数据结构,和数组同级.比如,Java中我们使用的ArrayList,其实现原理是数组.而LinkedList的实现原理就是链表了.链表在进行循环遍历时效率不高,但是插入 ...
- percona-xtradb-cluster安装部署
Percona Xtradb Cluster 安装 Percona Xtradb Cluster 介绍 Percona XtraDB Cluster 简称:PXC,是针对MySQL 用户的高可用性和扩 ...
- iOS_网络请求_代理方式
#pragma mark - 网络请求代理方式(异步) - (IBAction)DelegateButtonDidClicked:(UIButton *)sender { // 1.拼接 urlStr ...
- POJ 1066
由于到达点时不能绕墙,因为这是无意义的,所以,两点间的最小墙依然是按照直线所穿过的墙计算. #include <iostream> #include <cstdio> #inc ...
- boost中的有用工具assign和uuid
assign assign重载'+'=和','实现连续赋值 assign不仅支持所有8个STL标准容器(vector.string.deque.list.set.multiset.map.multim ...
- requireJS文件夹
前言 对于像我这样的requireJS刚開始学习的人而言,requireJS最难理解的部分应该是它的路径问题.晚上随便折腾了一下,算是略微理清了这个文件夹问题吧. requireJS学习网址:requ ...
- 【函数式】Monads模式初探——Endofunctor
自函子 自函子(Endofunctor)是一个将范畴映射到自身的函子(A functor that maps a category to itself). 函子是将一个范畴转换到另一个范畴.所以自函子 ...
- 数据结构之---C++语言实现图的十字链表存储表示
近期一直忙着考研复习,非常久都没有更新博客了.今天写一篇数据结构的存储. //有向图的十字链表存储表示 //杨鑫 #include <iostream> #include <cstd ...
- 问题: Unsupported major.minor version 51.0
Unsupported major.minor version 51.0 问题原因:外部jar包使用jdk1.7(jdk7)编译,而使用此jar包的工程jdk版本为jdk1.6(jdk6),算是版本不 ...