字典 Dictionary

+什么是字典?

+一系列的"键-值(key-value)"对

+通过"键"查找对应的"值"

+类似纸质字典,通过单词索引表找到其相应的定义

C++:map

Java:HashTable or HashMap

例如:电话本

创建字典

使用 { } 创建字典
使用 : 指明 键:值 对
my_dict = {'John':86411234,'Bob':86419453,'Mike':86412387} 键必须是 不可变 的且不重复,值可以是 任意 类型

访问字典

使用 [ ] 运算符,键作为索引
print my_dict['Bob']
print my_dict['Tom']#WRONG! 增加一个新的对
my——dict['Tom'] = 86417649

字典中键是无序的

字典运算符和方法

len(my_dict)

求字典中键-值对的数量

key in my_dict

快速判断key是否为字典中的键:O(1)
等价于my_dict.has_key(key) 时间复杂度为常数,不随字典规模变化

for key in my_dict:

枚举字典中的键,注:键是无序的

更多方法

my_dict.items()- 返回全部的键-值对 以列表形式
my_dict.keys()- 全部的键
my_dict.values()- 全部的值
my_dict.clear()- 清空字典

+字母计数

读取一个字符串,计算每个字母出现的个数

1.生成26个变量,代表每个字母出现的个数

2.生成具有26个元素的列表,将每个字母转化为相应的索引值,如a->0,b->1,...

s = 'asffghjljkl'

lst = [0] * 26

for i in s:
lst[ord(i) - 97] += 1 print lst

3.生成一个字典,字母做键,对应出现的次数做值

s = 'asffghjljkl'

d = {}

for i in s:
if i in d:
d[i] += 1
else :
d[i] = 1 print d

+单词计数

读取小说“emma.txt”,打印前10个最常见单词

是否还能直观的将每个单词转化为相应的数字?

sort默认升序

f = open('emma.txt')

word_freq = {}

for line in f:
words = line.strip().split()
for word in words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1 freq_word = []
for word,freq in word_freq.items():
freq_word.append((freq,word)) freq_word.sort(reverse = True) for freq,word in freq_word[:10]:
print word f.close()

+翻转字典

生成一个新字典,其键为原字典的值,值为原字典的键

同一个值,可能对应多个键,需要用列表存储

d1 = {'Zhang':123,'Wang':456,'Li':123,'Zhao':456}
d2 = {} for name,room in d1.items():
if room in d2:
d2[room].append(name)
else:
d2[room] = [name] print d2

note 11 字典的更多相关文章

  1. think in python 11 字典

    字典 字典类似于列表,但更加通用 键值对 ,字典是 键与值之间的映射,每个键都映射到一个值上 dict可以创建一个不包含任何项的字典 eng2sp = dict() print eng2sp 还可以给 ...

  2. Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)

    Linux 文件系统与设备文件系统(3) 成于坚持,败于止步 sysfs 文件系统与 Linux 设备模型 1.sysfs 文件系统 Linux 2.6 内核引入了 sysfs 文件系统,sysfs ...

  3. python note 05 字典及其操作

    1. '''#数据类型划分:可变数据类型,不可变数据类型不可变数据类型:元组,bool int str 可哈希可变数据类型:list,dict set 不可哈希dict key 必须是不可变数据类型, ...

  4. 383. Ransom Note 在字典数组中查找笔记数组

    [抄题]: Given an arbitrary ransom note string and another string containing letters from all the magaz ...

  5. python note 11 函数名的使用、闭包、迭代器

    1.函数名就是一个变量 def func(): print("我是一个小小的函数") a = func print(a) #输出变量存放地址 <function func a ...

  6. Master Note for Transportable Tablespaces (TTS) -- Common Questions and Issues (Doc ID 1166564.1)

    APPLIES TO: Oracle Database Cloud Exadata Service - Version N/A and laterOracle Database Cloud Servi ...

  7. 你真的了解字典(Dictionary)吗?

    从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点. 为了便于描述,我把上面的那条线路称为线路1,下面的称为线路2. 思路 ...

  8. 周末学习笔记——day02(带参装饰器,wraps修改文档注释,三元表达式,列表字典推导式,迭代器,生成器,枚举对象,递归)

    一,复习 ''' 1.函数的参数:实参与形参 形参:定义函数()中出现的参数 实参:调用函数()中出现的参数 形参拿到实参的值,如果整体赋值(自己改变存放值的地址),实参不会改变,(可变类型)如果修改 ...

  9. python(二)——list、字典、字符串操作

    列表——list 假设一种场景,想要存班里所有同学的名字,那应该拿什么存呢? 我们可以拿一个字符串去存,例如: stus = "s1,s2,s3,s4,s5……sn" 那我们要从里 ...

随机推荐

  1. ios jenkins从0快速配置

    1,安装:brew install jenkins2,命令行里:jenkins 回车,第一次会生成密码和保存密码的路径如:/Users/uname/.jenkins/secrets/initialAd ...

  2. 关于indexof和substring经常记不住的点

    indexof 找到的字符位置是 字符串从0位开始算起的. lastIndexOf也一样,http://localhost:8080/aaa,的lastIndexOf("/")是2 ...

  3. SVG分组和引用

    这是我在掘金中的文章链接地址:https://juejin.im/post/5bcfe0fa51882577e3760467

  4. MS Sql Server 查询数据库中所有表数据量

    方法一: SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id ,) AND a.Type='u' O ...

  5. Altium Designer 10 执行DRC发现有 Length Constraint 解决办法

    在PCB布局连线结束后,执行DRC,结果Length Constraint 报错,如图: 在Design Rules中找对应的规则约束,怎么也找不见. 其实是,在差分对进行等长蛇形绕线的步骤中,约束了 ...

  6. Matlab中的rectangle函数

    rectangle函数功能:创建二维矩形对象. rectangle('Position',[x,y,w,h])从点(x,y)开始绘制一个宽w高h的矩形,对坐标轴数据单元指定值.注意,按指定的比例显示矩 ...

  7. 基本的java加密算法MD5等等

    简单的java加密算法有: BASE64       严格地说,属于编码格式,而非加密算法 MD5             (Message Digest algorithm 5,信息摘要算法) SH ...

  8. zoj 2524 并查集裸

    Description There are so many different religions in the world today that it is difficult to keep tr ...

  9. Codeforces Round #350 (Div. 2) C. Cinema

    Moscow is hosting a major international conference, which is attended by n scientists from different ...

  10. PTA1

    1-1 数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号. (1分) [T ] F 1-2 在C语言中能逐个地使用下标变量,也能一次引用整个数组. (1分) T [F]因为它有首地址 1 ...