博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础学习整理——字典
阅读量:5903 次
发布时间:2019-06-19

本文共 4943 字,大约阅读时间需要 16 分钟。

hot3.png

1.创建和使用字典

代码示例:

#通过关键字创建>>> a={'name':'cai'}#通过函数dict创建>>> a={'name':'cai'}>>> a=['name','cai','age',12]>>> b=dict(a)Traceback (most recent call last):  File "
", line 1, in
b=dict(a)ValueError: dictionary update sequence element #0 has length 4; 2 is required>>> a=[('name','cai'),('age',12)]>>> b=dict(a)>>> b{'age': 12, 'name': 'cai'}>>>

 

#创建一个字典>>> x={}>>> x[40]='abc'>>> x{40: 'abc'}>>> x['key']=12>>> x{40: 'abc', 'key': 12}>>>

2.基本的字典操作

  • 字典的特点:键是唯一的、不可更改的,所以键可以是字符串、元组、数字,但不能是列表;值并不是唯一的,它的元素不受限制。
  • len(d)返回d中项的数量。
  • d[k]返回关联到键k上的值。
  • d[k]=v将值v关联到键k上。
  • del d[k]删除键为k的项。
  • 成员资格  k in d 查找的是键,而不是值。
  • 自动添加

字典copy和deepcopy

#不可更改的>>> import copy>>> a={'name':'cai','age':25}>>> a1=a.copy()>>> a2=copy.deepcopy(a)>>> a['name']='ren'>>> a['age']='24'>>> a{'age': '24', 'name': 'ren'}>>> a1{'age': 25, 'name': 'cai'}>>> a2{'age': 25, 'name': 'cai'}>>> #可更改的>>> import copy>>> a={'name':'cai','number':[1,2,3]}>>> a1=a.copy()>>> a2=copy.deepcopy(a)>>> a['name']='ren'>>> a['number'].remove(1)>>> a{'name': 'ren', 'number': [2, 3]}>>> a1{'name': 'cai', 'number': [2, 3]}>>> a2{'name': 'cai', 'number': [1, 2, 3]}>>>

3.字典格式化字符串

>>> a={'name':'cai','age':12}>>> print 'please gave you %(name)'%caiTraceback (most recent call last):  File "
", line 1, in
print 'please gave you %(name)'%caiNameError: name 'cai' is not defined>>> print 'please gave you %(name)'%aTraceback (most recent call last): File "
", line 1, in
print 'please gave you %(name)'%aValueError: incomplete format>>> print "gave you %(name)s"%agave you cai>>>

4.字典的方法

  • clear
  • copy
  • get
  • has_keys
  • items/iteritems
  • keys/iterkeys
  • pop
  • popitem
  • setdefault
  • update

代码示例

>>> a={'name':'cai','age':12}>>> a.clear()>>> a{}>>> a['name']='cai'>>> a['age']=12>>> a{'age': 12, 'name': 'cai'}>>> b=a.copy()>>> b{'age': 12, 'name': 'cai'}>>> {}.fromkeys(['name','age']){'age': None, 'name': None}>>> dict.fromkeys(['name','age']){'age': None, 'name': None}>>> dict.fromkeys(['name','age'].'(unkown)')SyntaxError: invalid syntax#get方法查看某一元素是否在字典中,,如果存在会得到这个值,如果不能在则会返回None。>>> a={'name':'cai','age':12}>>> a.get('name')'cai'>>> a.get('age')12>>> a.get('gender')>>> a.get('gender','N/A')'N/A'>>> #has_key python3中不使用,其作用相当于 k in d。>>> a.has_key('name')Traceback (most recent call last):  File "
", line 1, in
a.has_key('name')AttributeError: 'dict' object has no attribute 'has_key'>>> #iteams和iteritems(python3.0以后没有了)。items将字典所有的项以列表的形式返回,返回的值是成对的的,返回的顺序是随机的,字典的特性就是元素是随机。#iteritems的作用和items相似,但他返回的不是一个列表对象而是一个迭代器。>>> d={'name':'cai','age':26}>>> d.items()dict_items([('name', 'cai'), ('age', 26)])>>> d.iteritems()#返回的是一个迭代器对象。#keys和iterkeys这两个方法和上面的用法及作用相似。#pop删除对应的键值。>>> d={'name':'cai','age':26}>>> d.pop('name')'cai'{'age': 26}#popitem,方法类似与list.pop()用法相似只不过前者随意删除掉一个元素,后者随即删除一个元素。#python3.0后没有此方法>>> d={'name':'cai','age':28}>>> a.popitem()Traceback (most recent call last): File "
", line 1, in
a.popitem()NameError: name 'a' is not defined>>> #setdefault在某种程度上类似于get方法,能够获得与给定键相关联的值,只是get用于检验字典中是否不具备该元素,而setdefault是用来添加一个不具备的元素或者监测某个元素是否存在;还能再字典中添加新的元素。>>> d={}>>> d.setdefault('name','cai')'cai'>>> d{'name': 'cai'}>>> d.setdefault('age',26)26>>> d{'name': 'cai', 'age': 26}>>> d.get('name')'cai'>>> d.get('ren')>>> d{'name': 'cai', 'age': 26}>>> d.setdefault('name')'cai'>>> #update,利用一个字典更新另外一个字典。字典的元素顺序是随机的。python3.0没有itervalues用法。>>> x={'home':'big house','price':'15000/m2'}>>> d.update(x)>>> d{'price': '15000/m2', 'name': 'cai', 'home': 'big house', 'age': 26}>>> x.update(d)>>> x{'price': '15000/m2', 'name': 'cai', 'age': 26, 'home': 'big house'}>>> #values和itervalues,前者返回的是一个值的列表,后者返回的是一个值的可迭代对象。>>> d.values
>>> d.values()dict_values(['15000/m2', 'cai', 'big house', 26])>>> d.itervalues()Traceback (most recent call last): File "
", line 1, in
d.itervalues()AttributeError: 'dict' object has no attribute 'itervalues'>>>

Python字典包含了以下内置函数:

#str,是数据对象以字符串的形式输出>>> str(d)"{'price': '15000/m2', 'name': 'cai', 'home': 'big house', 'age': 26}">>> #type,返回变量类型,如果是字典则返回字典的类型>>> type(d)
>>>
序号 函数及描述
1
比较两个字典元素。
2
计算字典元素个数,即键的总数。
3
输出字典可打印的字符串表示。
4
返回输入的变量类型,如果变量是字典就返回字典类型。

遍历字典

#遍历key值>>> for key in dict1:...     print key... key2key1key>>> for key in dict1:...     print dict1[key],key... value3 key2value1 key1value key>>> for i in dict1.keys():...     print dict1[i],i... value3 key2value1 key1value key>>> #遍历values值>>> for i in dict1.values():...     print(value)... keykeykey>>> for value in dict1.values():...     print value... value3value1value>>> for key in dict1:...     print dict1[key]... value3value1value#遍历字典项>>> for k,v in dict1.items():...     print k,v... key2 value3key1 value1key value>>> for (key,value) in dict1.items():...     print key,value... key2 value3key1 value1key value>>>

 

转载于:https://my.oschina.net/u/3754854/blog/1622136

你可能感兴趣的文章
Java多态和动态绑定是如何实现的
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
最长上升子序列问题
查看>>
C#中的析构函数
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>
12行代码的相关节点
查看>>
6大设计原则
查看>>
Github简介
查看>>
存储过程—导出table数据为inser sqlt语句
查看>>
Windows 7下Maven3.0.3的安装
查看>>
CISCO2691的OSPF点对点密文测评测试
查看>>
POJ 1661 Help Jimmy(递推DP)
查看>>
Node.js 中文学习资料和教程导航
查看>>
查找(AVL平衡二叉树)
查看>>
Javascript函数调用的四种模式
查看>>
用 Asterisk 搭建自己的免费 VoIP 服务器
查看>>
lua笔记二 赋值语句
查看>>