python-字典(dict)处理

字典是python语言中唯一的映射类型。

映射类型对象里哈希值(key,键)和指向的对象(value,值)是一对多的关系,通常被认为是可变的哈希表。

字典的对象是可变的,它是一个容器类型,能存储任意个数的python对象,其中也可包括其他容器类型。

字典中的数据是无序排列的。

字典中键与值用“:”分开、项与项之间用“,”分开、字典中值必须是唯一的,而值可以不唯一!

1.创建dict

简单的说字典就是用大括号“{}”括起来的键值对的集合。

一般形式:

>>> adict={‘name‘:‘fly‘,‘age‘:30,‘sex‘:‘man‘}
>>> bdict={}
>>> type(bdict)
<type ‘dict‘>
>>> type(adict)
<type ‘dict‘>

>>>

使用dict()函数:

>>> cdict = dict()
>>> type(cdict)
<type ‘dict‘>
>>> cdict
{}
>>> ddict = dict(([‘a‘,1],[‘b‘,2]))
>>> ddict
{‘a‘: 1, ‘b‘: 2}
>>> edict = dict(name=‘flyer‘,sex=‘man‘)
>>> edict
{‘name‘: ‘flyer‘, ‘sex‘: ‘man‘}
>>>

2、dict的增删改查

>>> adict = {‘age‘: 30, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

adict[new_key] = value

>>> adict[‘telphone‘]= 1888888888

>>> adict

{‘age‘: 30, ‘telphone‘: 1888888888, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

  • del adict[key]     #删除指定key的项
  • del adict             #删除整个字典
  • adict.pop(key)    #删除指定key的项
  • adict.clear()         #清空字典所有条目

>>> del adict[‘age‘]

>>> adict

{‘telphone‘: 1888888888, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> adict

{‘telphone‘: 1888888888, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> adict.pop(‘telphone‘)

1888888888

>>> del adict    #删除整个字典

如果删除的元素不存在

>>> adict = {‘age‘: 30, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> del adict[‘wife‘]

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

KeyError: ‘wife‘

>>> adict.pop(‘wife‘)

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

KeyError: ‘wife‘

>>>

adict[old_key] = new_value

>>> adict

{‘age‘: 30, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> adict[‘name‘]=‘fhr‘

>>> adict

{‘age‘: 30, ‘name‘: ‘fhr‘, ‘sex‘: ‘man‘}

>>>

  • adict.has_key(‘key‘)   #有->True、无->False
  • in 、not in                  #如:‘key‘ in adict   有->True、无->False
  • adict.get(‘key‘)           #获得key的值,有则返回key的value,没有不显示
  • adict[‘key‘]                  #获得key的值,有则返回key的value,没有则报一个异常

>>> adict

{‘age‘: 30, ‘name‘: ‘fhr‘, ‘sex‘: ‘man‘}

>>> adict.has_key(‘name‘)

True

>>> adict.has_key(‘wife‘)

False

>>> ‘name‘ in adict

True

>>> ‘wife‘ in adict

False

>>>

>>> adict.get(‘age‘)
30
>>> adict.get(‘wife‘)
>>> print adict.get(‘wife‘)
None
>>> adict[‘age‘]
30
>>> adict[‘wife‘]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: ‘wife‘

>>>

3.映射类型操作符

标准类型操作符:+,-,*,/,<,>,<=,>=,==,!=,and,or,not

字典不支持拼接和重复操作符(+,*)

字典的比较

先比较字典的长度也就是字典元素个数,在比较键,然后比较值

>>> adict = {‘age‘: 30, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘,‘telphone‘:188888888}

>>> bdict = {‘age‘: 30, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> cdict = {‘age‘: 24, ‘name‘: ‘fly‘, ‘sex‘: ‘man‘}

>>> ddict = {‘age‘: 30, ‘name‘: ‘fly‘}

>>> edict = {‘age‘: 30, ‘name‘: ‘fly‘}

>>> cmp(adict,bdict)

1

>>> cmp(bdict,cdict)

1

>>> cmp(ddict,cdict)

-1

>>> cmp(ddict,edict)

0

>>>

4.字典的特性

字典的value可以是任何的python对象,key不行

    1).字典中的键是唯一的,如果同一个key被赋值两次,后一个value会被记住

>>> dict = {‘name‘:‘fj‘,‘name‘:‘fhr‘}

>>> dict

{‘name‘: ‘fhr‘}

>>>

    2).键必须是不可变的,可以用数,字符串或者元祖充当,但是列表不行。

>>> dict = {[‘name‘]:‘fjg‘,‘age‘:18}

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: unhashable type: ‘list‘

5.字典的内置函数&方法

  • adict.clear() : 删除字典内所有元素

>>> adict = {‘age‘: 30, ‘name‘: ‘fhr‘, ‘sex‘: ‘man‘}

>>> adict.clear()

>>> adict

{}

  • adict.copy() : 返回一个字典浅拷贝的副本
  • adict.fromkyes(S[,v]) : 创建并返回一个新字典,以S中的元素作为新字典的key,v做新字典中所有key的初始value。v默认为None
  • adict.get(key[,d]) :获得字典中key的value。如果key不存在,则返回d,d的默认值为None
  • adict.has_key(key):查询字典中是否有key,有则返回True,否则返回False
  • adict.items():返回一个包含所有(键,值)元组的列表
  • adict.interitems() :通过key:value迭代
  • adict.interkeys():通过key迭代
  • adict.intervalues():通过value迭代
  • adict.keys():返回一个包含字典所有key的列表
  • adict.pop(k[,d]):如果存在key,删除并返回k对应的value,如果key不存在,且指定了d的值,则返回d,如果没有指定d,则引发keyerror异常。
  • adict.popitem():随机删除任意一个元素并返回,如果adict是空的,则返回异常
  • adict.setdefault(key,default=‘  ‘):如果key存在则返回key的值,如果key不存在,则由adict[key]=default为key赋值
  • adict.update()
  • adict.values():返回一个包含字典所有value的列表
  • adict.viewitems()
  • adict.viewkeys()
  • adict.viewvalues()
时间: 2024-08-28 18:44:42

python-字典(dict)处理的相关文章

15.python 字典dict - python基础入门

前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict. python中的字典可与字符串/列表/元组不同,因为字典dict需要由两部分组成,分别是key和value,简称:键值对,下面具体讲解一下关于字典的特点: 1.由一个或者多个键值对构成,键值对的类型可以不相同也可以相同: 2.字典中的键值对需要写在{}中括号内部,键值对中的key和value用:隔开,键值对与键值对之间用逗号隔开: 3.字典是一个无序

Python字典(dict)使用技巧

字典dict是Python中使用频率非常高的数据结构,关于它的使用,也有许多的小技巧,掌握这些小技巧会让你高效地的使用dict,也会让你的代码更简洁. 1.默认值 假设name_for_userid存放的是name和id的映射关系: name_for_userid = { 1: '张三', 2: '李四', 3: '王五', } 获取name_for_userid中的某一个id的name,最简单的方式: name_for_userid[1] '张三' 这种方式虽然简单,但有一个不便之处就是,如果

python 字典dict和列表list的读取速度问题, range合并

python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字典的keys中,以下两段代码的效率差别非常大: 第一段: if(pos in fre_dist.keys()):newvalue= fre_dist[pos] 第二段: if(pos in fre_dist):newValue=fre_dist[pos] 在处理3万条数据时,第二段代码的速度是第一段

Python 字典(dict)中元素的访问

访问python字典中元素的几种方式 一:通过“键值对”(key-value)访问: print(dict[key]) dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': 45} print(dict['D']) 输出: ee dict.get(key,[default]) :default为可选项,用于指定当‘键’不存在时 返回一个默认值,如果省略,默认返回None dict = {1: 1, 2: 'aa', 'D': 'ee', 'Ty': 45} print(

Python - 字典(dict)删除元素

字典(dict)删除元素, 可以选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, key): r = dict(d) del r[key] return r x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} x.pop(1) print x x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0} del x[1] print x x = {1: 2,

python 字典dict

一.字典(dict)  1.字典 字典:用 {} 来表示, 键值对数据 {key:value}, 具有唯一性. 键:都必须是可哈希的,不可变的数据类型就可以当做字典中的键值,没有任何限制. 2.字典的增删改查 1增加 dic[键名] = value               新增,强制添加 dic.setdefault(key,value)   如果字典中存在就不进行操作,不存在就进行添加. 1 dic = {"k1":"v1","k2":&q

python 字典(dict)get方法应用

如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这里我们可以用字典做一个小游戏,假设用户在终端输入字符串:"1"或者是"2"或者是"3",返回对应的内容,如果是输入其他的,则返回"error" 这里有的朋友可能会用if elif else判断语句来操作,确实可以,但是比较繁琐.给大家推荐一个字典的get()方法非常

Python字典dict

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度.Python中的唯一一种映射类型. 举个例子,假设要根据同学的名字查找对应的成绩,如果用列表(list)实现,需要两个list: names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75, 85] 给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取

Python字典 dict

python中字典和java中的map类型相似.key可以为字符串,元组,数字等. 创建一个字典:people={"zhangsan":11,"lisi":12} print (people.get("zhangsan"))

Python 字典 dict{}

dict{key:value} 映射类型 fromkeys(seq[, value])   创建新字典,键seq对应的值value.每次使用创建新的字典 使用items()访问字典中每一项,使用key()访问字典中每一个键,使用value()访问字典中每一个键值 ----------------------------------------------------------------------------------------------------------------------