设为首页 收藏本站
查看: 955|回复: 0

[经验分享] Python学习笔记四--字典与集合

[复制链接]

尚未签到

发表于 2015-11-30 08:51:34 | 显示全部楼层 |阅读模式
  字典是Python中唯一的映射类型。所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列。字典是可变类型。字典中的数据是无序排列的。
  4.1.1字典的创建及赋值



dict1={}
dict2={'name':John,'age':24}
  使用dict()函数创建字典。
  dict()函数接受序列,或关键字参数作为参数创建字典。若不提供参数则创建空字典。



dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典
dict2=dict(x=1.y=2)#接受关键字参数作为参数
  使用内建方法fromkeys()来创建一个“默认字典”,该字典中的键均对应相同的值,如果值未给出则为None。



dict1={}.fromkeys(('x','y'),1)
dict1
>>>{'y':1,'x':1}
  4.1.2字典中值得访问
  通过字典中的键访问值。



info={'name':'bing','age':24,'sex':'male'}
info['name']
>>>'bing'
  Python中默认通过访问键来获取值。



info={'name':'bing','age':24,'sex':'male'}
for key in info:
print 'key=%s,value=%s'%(key,info[key])
>>>
key='age',value='24'
key='name',value='bing'
key='sex',value='male'
  4.1.3更新字典
  对字典的更新包括以下操作,增加一个“键-值”对,删除字典元素,清除字典中所有或个别条目,修改某个元素的值。下面举例说明。



info={'name':'bing','age':24,'sex':'male'}
info['name']='xiaobing'#更新已有条目
info['addr']='lanzhou'#增加新条目

  对字典的删除一般指删除某个“键-值”对,删除整个字典会用到del语句。



del info['name'] #删除dict中键为name的条目
info.clear()        #清空字典所有条目
del info             #删除整个字典
info.pop(‘name’)#返回并删除键为name的条目
  4.2.1映射类型的操作符
  1、字典查找操作符:[]
  使用方法dict[k]=n,将n赋值给dict中键为k的条目;dict[k],访问dict中键为k的条目。
  2、成员关系操作符:(in,not in)



dict1={'name':'bing','age':24,'sex':'male'}
'name' in dict1
>>>True
'phone'in dict1
>>>False
  需要注意的是in和not in仅作为检查某个键是否在字典中。
  4.3.1相关函数
  1、dict(),用来创建字典,前面说过不再赘述。
  2、len(),返回字典长度,即字典中的“键-值”对个数
  3、hash(),判断某个对象是否可以做字典的键。讲一个对象传递给hash(),会返回这个对象的哈希值,只有这个对象是可哈希的才可以作为字典的键。
  4.4.1字典的内建方法
  下面会提到字典的一些内建方法,其余的请在有需要是查阅文档。
  1、dict.keys(),返回一个列表包含字典中的所有键。
  2、dict.values(),返回一个列表包含字典中的所有值。
  3、dict.items(),返回一个由(键,值)元组作为元素的列表。
  4、dict.clear(),删除字典中所有元素。
  5、dict.copy(),返回字典的一个副本(浅复制)。
  6、dict.update(dict2),将字典dict2的键-值对添加到dict。
  4.5.1对字典中键的一些说明
  1、键不允许一对多,类似映射中两个集合的对应关系。
  2、键必须是可哈希的,所有不可变类型都是可哈希的故可作为键,可变类型不可哈希即不可作为键,如列表,字典类型。
  
  4.6集合数据类型
  数学上把集合称作不同元素的集合,集合(set)成员被称为集合元素。集合对象是一组无需可哈希的值。集合支持 in,not in 检查操作符,用len得到集合大小(元素个数),但集合无法创建索引因为集合是无需排列。集合有不同两种类型,可变集合(set)和不可变集合(frozenset)。
  4.6.1集合的创建
  集合只能通过它的工厂方法创建



s=set('python')
s
>>>set(['y','o','n','t','p','h'])
type(s)
>>> <type,'set'>
  4.6.2集合元素的操作
  可以遍历查看集合元素



s=set('python')
p in s
>>>True
x in s
>>>False
for i in s
print i
>>>
y
o
n
t
p
h
  通过集合的内建方法和操作符增加或删除集合元素:
  1、set.add(),向集合添加新元素
  2、set.update(),集合的合并
  3、set.remove(),删除集合中元素
  4.7集合成员关系操作
  对于集合真正重要的是成员关系及子集的关系操作。
  1、成员关系in,not in。
  判断一个元素是否在一个集合中,返回True 或者False。
  2、等价与不等价==,!=
  集合等价指两个集合中每个元素都相同
  3、真子集与子集(<,<=)
  4、并集
  符号|或者union()方法。
  5、交集
  符号&或者等价方法intersection()
  6、差集
  符号-或者等价方法difference()
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145124-1-1.html 上篇帖子: Python解释器 下篇帖子: python 并发
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表