python 字典相关操作

更新时间:2023-09-05 01:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 通过健来访问值,例:d[key]。可以通过key来引用value,但不可以通过value来引用key。读取

不存在的key会引发异常,对不存在的key做赋值操作则会为字典增加一对键值。

2. 遍历字典:for key in d.keys() 或者可以直接for key in d 来操作。

3. d.keys()——返回一个包含所有键的list,需要注意该list并不按照字典定义的顺序输出。

4. d.values()——返回一个包含所有值的list,值列表的元素顺序与键列表的顺序一致。

5. d.items()——返回一个list,该list由形如(key, value)的tuple组成。

6. d.copy——得到字典的一个浅拷贝。

7. d.get(key)——若字典中有key则返回d[key],否则返回None。

8. d.get(key,default)——同上,若无则返回default的值。

9. d.has_key(key)——判断是否含有key,含有则返回True,否则False。 10. 判断字典中是否存在某个键,还可以用"in","not in"操作符。

四、字典的增删改

1. 增加字典元素——d['a']='hello'。

2. 删除字典元素——del d['a']或者d.pop('a')。

3. 清空字典元素——d.clear() 从一个字典中清除所有元素。

4. 删除字典对象——del d

5. 把字典a的元素加入到字典d当中,键重复时会覆盖字典d的键值——d.update(a)。

6. 依顺序得到字典的一个键值对并删除,若字典是空的则抛出异常——d.popitem()

7. 删除指定键的键值对,并返回该键对应的值,若键不存在则返回参数v——d.pop(key,[v])

增加字典元素

>>> nameinfo={}

>>> nameinfo['a1']='yangrong' #若字典里有a1主键,则覆盖原来的值,没有,则添加

>>> nameinfo

{'a1': 'yangrong'}

遍历字典主键与键值

>>> for k, value innameinfo.items():

... print k,value

...

a1 yangrong

查看字典所有主键

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'} >>>

>>>

>>> dict.keys()

['ob2', 'ob3', 'ob1']

判断字典中是否有该主键

>>> dict.keys()

['ob2', 'ob3', 'ob1']

>>> dict.has_key('ob2') #或'ob2' in dict

True

>>> dict.has_key('ob4')

False

也有人用循环方法来判断

for key in dict.keys():

但是这种方法毕竟不够简洁,

查看字典所有键值内容

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'} >>> dict.values()

['mouse', 'printer', 'computer']

列出所有项目

>>> dict.items()

[('ob2', 'mouse'), ('ob3', 'printer'),('ob1', 'computer')]

清空字典

>>> dict.clear()

>>> dict

{}

拷贝字典

>>> dict

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> a=dict

>>> a

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> b=dict.copy()

>>> b

{'ob2': 'mouse', 'ob3': 'printer', 'ob1': 'computer'}

比较字典

>>> cmp(a,b)

首先比较主键长度,然后比较键大小,然后比较键值大小,(第一个大返回1,小返回-1,一样返回0)

更新字典

>>>dict={'yangrong':{"age":"23","job":"IT"},"xiaohei":{"'age':'22','job':'dota'"}}

>>> dict

{'xiaohei':set(["'age':'22','job':'dota'"]), 'yangrong': {'age': '23', 'job':'IT'}}

>>> dict['xiaohei']=111 #修改一级字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': '23','job': 'IT'}}

>>> dict['yangrong']['age']=25 #修改二级字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': 25,'job': 'IT'}}

>>> dict={'yangrong':['23','IT'],"xiaohei":['22','dota']}

>>>dict['xiaohei'][1]="dota2" #修改字典中列表某项,1是代表列表中第2个字符串。

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}

删除字典元素

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}

>>> del dict['xiaohei'] #删除xiaohei键值

>>> dict

{'yangrong': ['23', 'IT']}

>>> dict

{'yangrong': ['23', 'IT']}

>>>

>>> del dict['yangrong'][1] #

>>> dict

{'yangrong': ['23']}

删除整个字典

>>> dict

{'yangrong': ['23']}

>>> dict.clear() #同del dict

>>> dict

{}

删除yangrong主键的每2字值

将字符串切分为列表

>>> s="hello world bye"

>>> s.split() #用于把有规律的文本,读取出来后,使用列表进行修改,再写入文件。

['hello', 'world', 'bye']

将列表转换为字符串

S.split(str, ' ') #将string转list,以空格切分

存储字典(pickle序列化)

#需导入pickle模块 import pickle

把字典内容存入文件

f=file('data.txt','wb') #新建文件data.txt,'wb',b是打开块文件,对于设备文件有用

pickle.dump(a,f) #把a序列化存入文件

f.close()

把内容读入字典(反序列化)

a=open('data.txt','rb') #打开文件

print pickle.load(a) #把内容全部反序列化

增加字典元素

>>> nameinfo={}

>>> nameinfo['a1']='yangrong' #若字典里有a1主键,则覆盖原来的值,没有,则添加

>>> nameinfo

{'a1': 'yangrong'}

遍历字典主键与键值

>>> for k, value innameinfo.items():

... print k,value

...

a1 yangrong

查看字典所有主键

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'} >>>

>>>

>>> dict.keys()

['ob2', 'ob3', 'ob1']

判断字典中是否有该主键

>>> dict.keys()

['ob2', 'ob3', 'ob1']

>>> dict.has_key('ob2') #或'ob2' in dict

True

>>> dict.has_key('ob4')

False

也有人用循环方法来判断

for key in dict.keys():

但是这种方法毕竟不够简洁,

查看字典所有键值内容

>>> dict = {'ob1':'computer','ob2':'mouse', 'ob3':'printer'} >>> dict.values()

['mouse', 'printer', 'computer']

列出所有项目

>>> dict.items()

[('ob2', 'mouse'), ('ob3', 'printer'),('ob1', 'computer')]

清空字典

>>> dict.clear()

>>> dict

{}

拷贝字典

>>> dict

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> a=dict

>>> a

{'ob2': 'mouse', 'ob3': 'printer', 'ob1':'computer'}

>>> b=dict.copy()

>>> b

{'ob2': 'mouse', 'ob3': 'printer', 'ob1': 'computer'}

比较字典

>>> cmp(a,b)

首先比较主键长度,然后比较键大小,然后比较键值大小,(第一个大返回1,小返回-1,一样返回0)

更新字典

>>>dict={'yangrong':{"age":"23","job":"IT"},"xiaohei":{"'age':'22','job':'dota'"}}

>>> dict

{'xiaohei':set(["'age':'22','job':'dota'"]), 'yangrong': {'age': '23', 'job':'IT'}}

>>> dict['xiaohei']=111 #修改一级字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': '23','job': 'IT'}}

>>> dict['yangrong']['age']=25 #修改二级字典

>>> dict

{'xiaohei': 111, 'yangrong': {'age': 25,'job': 'IT'}}

>>> dict={'yangrong':['23','IT'],"xiaohei":['22','dota']}

>>>dict['xiaohei'][1]="dota2" #修改字典中列表某项,

表中第2个字符串。

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}

删除字典元素

>>> dict

{'xiaohei': ['22', 'dota2'], 'yangrong':['23', 'IT']}

>>> del dict['xiaohei'] #删除xiaohei键值

>>> dict

{'yangrong': ['23', 'IT']}

>>> dict 是代表列1

{'yangrong': ['23', 'IT']}

>>>

>>> del dict['yangrong'][1] #删除yangrong主键的每2字值 >>> dict

{'yangrong': ['23']}

删除整个字典

>>> dict

{'yangrong': ['23']}

>>> dict.clear() #同del dict

>>> dict

{}

将字符串切分为列表

>>> s="hello world bye"

>>> s.split() #用于把有规律的文本,读取出来后,使用列表进行修改,再写入文件。

['hello', 'world', 'bye']

将列表转换为字符串

S.split(str, ' ') #将string转list,以空格切分

存储字典(pickle序列化)

#需导入pickle模块 import pickle

把字典内容存入文件

f=file('data.txt','wb') #新建文件data.txt,'wb',b是打开块文件,对于设备文件有用

pickle.dump(a,f) #把a序列化存入文件

f.close()

把内容读入字典(反序列化)

a=open('data.txt','rb') #打开文件

print pickle.load(a) #把内容全部反序列化

本文来源:https://www.bwwdw.com/article/om6i.html

Top