Python学习日记---字典

字典是Python的一种数据结构,像数学中的映射集合,可以理解为由键和值成对存在的单元构成的一个列表。

一.字典构造形式:

 1.字典名 = {键名1:值1 ,键名2:值2 ,键名3:值3}

例如 :Dic = {‘op‘:55 , 3:(‘a‘,‘b‘) , ‘q‘:[1.25,‘score‘,5]}

其中键只能是不可改变对象(如元组,字符串,整数等)和值可以为任意的对象


2.可以使用dict()或{}构造一个空的字典如 Dic=dict() DIc={}

二.字典的索引:

1.字典可以使用 [ ] 运算符,但与之前的列表元组等不同,字典不可以使用顺序的数字作为索引如   1,2,-1等

2.字典需要使用键值作为索引,如1.的例子中,可以使用如下的索引方法 Dic[‘op‘] Dic[3] Dic[‘q‘]

3.既然字典的值可以是任意对象,那么就有可能为列表,元组,甚至是字典。那么当值为上述对象时候,使用字典名[键值]方式将得到一个集合,由此我们可以使用一个二维的方法进行索引

范例:

>>> Dic={‘a‘:{‘q‘:‘hello‘ , ‘w‘:‘how‘ , ‘e‘:‘Thanks‘}}
>>> Dic[‘a‘][‘e‘]
‘Thanks‘

一维结果为列表的话,二维的[]变可以使用顺序的数字索引

以此类推,当二维键所对应的值仍为字典等集合时,可以继续这样使用:

>>> Dic={‘a‘:{‘q‘:‘hello‘ , ‘w‘:‘how‘ , ‘e‘:{‘u‘:‘yes‘}}}
>>> Dic[‘a‘][‘e‘][‘u‘]
‘yes‘

4.如果在索引时,输入的键值不存在,Python将报错

三.字典的赋值:

赋值方法为 字典名[键名] = 值 以此形成一个映射关系

当待赋值的键名不存在时,python将直接在该字典中加入此键值对

四.与字典有关的操作:

[]:在方括号中使用键进行索引

len():计算出的长度为字典中键值对的个数

in:成员测试,判断键是否在该字典中

for:循环找出字典中每个键值对

五.字典方法:

 items() : 生成所有键值对的元组列表

keys() : 生成所有键的列表

values(): 生成所有值的列表

copy() : 对字典进行浅拷贝 (引用关系)

六.一个实例

以《葛底斯堡演说》为例进行分析,判断其中的单词数和对应的频率,并进行排序显示

import string
def addword (word,Wdict):       #将word单词加入字典统计,没有添加键值对,有则值+1
    if(word in Wdict):
        Wdict[word]+=1
    else:
        Wdict[word]=1
def collect(line,Wdict):     #对line字符串进行分析,并拆分出有效单词加入到字典
    line = line.strip()
    wordline = line.split()
    for word in wordline:
        if(word == ‘--‘):
            continue
        word = word.strip(string.punctuation)
        word = word.lower()
        addword(word,Wdict)
def Printf(Wdict):    #对字典内容排序输出函数
    resultwords = [[val,key] for key,val in Wdict.items()]
    resultwords.sort(reverse=True)
    print("%-12s%-10s"%(‘word‘,‘Count‘))
    print(‘-‘*21)
    for Count,Word in resultwords:
        if(Count>2):
            print("%-13s%-3d"%(Word,Count))
Wdict = {}      #在这也可以将下面的代码封装到main(),然后执行main()运行程序
FileODJ = open(‘wordtest.txt‘,‘rU‘)
for line in FileODJ:
    collect(line,Wdict)
Printf(Wdict)
时间: 2024-10-14 06:33:14

Python学习日记---字典的相关文章

Python 学习日记第三篇 -- 字典

一.字典 python中的字典不是序列,而是一种映射:不通过位置而是通过键存储.字典是可变的. 1.字典的映射操作 使用{}定义字典,以key:value形式存储数据,在字典中key是唯一的 >>> one_dict = {'name':"jym",'age':23,'addr':'xinjiang'} #通过key查找数据 >>> one_dict['name'] 'jym #修改 >>> one_dict['name'] = &

Python学习日记之字典深复制与浅复制

关于字典复制函数dict.copy()实际应用复制问题 # -*- coding:utf-8 -*- ab={'1':'电话','2':'姓名','3':'性别'} test=ab //浅复制 test2=ab.copy() //深复制 def out(t): for n,a in t.items(): print '%s %s'%(n,a) print out(test) out(test2) del ab['1'] out(test) out(test2) 实际使用发现 dict.copy(

Python 学习日记第五篇 -- collections系列

一.计数器(counter) 计数器(counter)以字典的形式返回序列中各个字符出现的次数,值为key,次数为value #!/usr/bin/env python #-*- coding:utf-8 -*- #导入collections模块 import collections counter_test = collections.Counter("asfafjhadgkhjkgfjhgfjhaghdg") print(counter_test) #返回值 C:\Python27

python学习日记-i/o&type

今天学习的是python的输入输出io和数据类型. python的输入为input()函数(一个内置函数和c#的readkey()类似),比如要给变量a赋值,需要用户输入赋值就可以写a=input();如果需要提示用户输入名字并且赋值给a就可以用a=input(‘请输入你的名字’),但是在用的过程中遇到一个问题,就是让用户输入一个数字,并进行处理,比如: a=input('请输入一个数字')if a>100: print(a)else: print(a+100) 结果报错 unorderable

python学习日记-hello,world!

写这篇日志的目的,只是记录一下学习Python的一些问题,收获.今天,也是新入职第一天,也记录下日常生活的点滴.看看我能坚持多久吧.   早上,起床,洗漱,急忙赶往公司,结果还是迟到了,但是老板不在,然后就是装机,装机的过程中知道了公司早上上班时间很灵活,从8点半到9点半都可以,只是影响你下班的时间,心中暗爽.但是迟到一次扣50,还是有点吓人的.然后开始一天的扯淡.下午5点半准时溜.    回来开始安装Python(本来昨晚上就在下的,可是弄了半天,发现现在Python有2.x,3.x的版本.作

Python学习:字典(dictionary)

dictionary是python内置数据结构中最灵活的.列表list是有序的对象集合,而dictionary是无序的集合.最主要的差别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 可变长,异构,任意嵌套.字典可以在原处修改,但不支持用于字符串和列表中的序列操作.因为字典是无序的集合,所以根据固定顺序进行操作是行不通的. 1.dictionary的构造: D={}        #空字典 D = {'spam':2, 'ham':1, 'eggs':3}    #三项目字典 D =

python学习05——字典

笨办法学python第39节 这节主要讲解的是字典,首先字典和列表的两个区别是: 1. 列表中可以通过数字找到列表中的元素,是数字作为索引的:字典中可以通过任何东西找到想要的元素,即字典可以将一个物件和另外一个东西关联. 2. 列表是有顺序的:字典是无序的.(上一节有提到) 本节的代码如下: 1 class Song(object): 2 3 def _init_(self, lyrics): 4 self.lyrics = lyrics 5 6 def sing_me_a_song(self)

Python学习笔记-字典(上)

字典是python独特的一种映射关系的数据类型,由成对的键值(项)组成. 建立方法: 1.直接输入键值建立 items ={'apple':'$5','pear':'$4','banana':'6'} print items['apple'] $5 注意一定使用{ }, 否则成了列表. 2. 通过dict函数从列表建立 items =[['apple','$5'],['pear','$4'],['banana','6']] print items print items[0:1] ditems 

Python学习笔记-字典(下)

同列表和字符串一样,字典也有方法. clear 清空字典中的所有项. 我们可以把空字典赋给某一字典来清空它当中的项.也可以使用clear方法彻底清空字典. x= {} y=x x['age']='25' x['gender']='male' print x  x.clear() print x  print y  {'gender': 'male', 'age': '25'} {} {} 如果将 x.clear 改为 x={},则结果变为 {'gender': 'male', 'age': '2