仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 633|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 来看看:python字典和聚集

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:04:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:退一万步讲,即使CentOS项目终结,正在运行它的企业也可以很轻松的转移到另一个企业Linux的克隆版。
  1. 1.字典字典是python中独一的映照类型,采取键值对(key-value)的情势存储数据。python对key停止哈希函数运算,依据盘算的成果决议value的存储地址,所以字典是无序存储的,且key必需是可哈希的。可哈希表现key必需是弗成变类型,如:数字、字符串、只含弗成变类型元素的元组(1,2,3,’abc’)、完成__hash__()办法的自界说对象(由于__hash__()须前往一个整数,不然会涌现异常:TypeError:anintegerisrequired)。可以用hash(obj)检测对象能否是可哈希的。>>>classHashEnable(object):...def__hash__(self):...return1>>>he=HashEnable()>>>hash(he)1>>>d={he:1}>>>d={[1,2]:2}Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:unhashabletype:list1.1字典经常使用操作(1)创立字典>>>d1={}>>>d2={player:QVOD,game:kw}>>>d1,d2({},{player:QVOD,game:kw})>>>d3=dict(([name,alex],[sex,man]))>>>d3{name:alex,sex:man}>>>d33=d3.copy()>>>d33{name:alex,sex:man}>>>d4={}.fromkeys((alex,zhou),1)>>>d4{alex:1,zhou:1}>>>d5={}.fromkeys((alex,zhou))>>>d5{alex:None,zhou:None}(2)遍历字典ps:拜访一个不存在的key时,会产生KeyError异常,拜访前可以使用in或notin断定一下。>>>d={name:alexzhou,sex:man}>>>forkeyind:...print%s,%s%(key,d[key])...name,alexzhousex,man>>>d[name]alexzhou>>>d2={name:alexzhou,age:100}>>>printname:%s,age:%d%(d2[name],d2[age])name:alexzhou,age:100>>>d2[sex]Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>KeyError:sex>>>sexind2False>>>nameind2True(3)更新字典>>>d={name:alexzhou,age:100}>>>d[age]=88>>>d{age:88,name:alexzhou}>>>d.pop(age)88>>>d{name:alexzhou}>>>d.clear()>>>d{}1.2经常使用内建函数(1)cmp()字典的比拟:起首是字典的巨细,然后是键,最初是值>>>d1={abc:1,efg:2}>>>d2={abc:1,efg:2,h:3}>>>cmp(d1,d2)-1>>>d3={ab:1,efg:2}>>>cmp(d1,d3)1>>>d4={abc:1,efg:3}>>>cmp(d1,d4)-1>>>d5={abc:1,efg:2}>>>cmp(d1,d5)0(2)len()前往键值对的数量>>>d={abc:1,efg:2}>>>len(d)2(3)keys()、values()、items()keys()前往一个包括字典一切键的列表values()前往一个包括字典一切值的列表items()前往一个包括键值元组的列表>>>d={name:alex,sex:man}>>>d.keys()[name,sex]>>>d.values()[alex,man]>>>d.items()[(name,alex),(sex,man)](4)dict.get(key,default=None)前往字典中key对应的value,若key不存在则前往default>>>d={name:alex,sex:man}>>>d.get(name,notexists)alex>>>d.get(alex,notexists)notexists(5)dict.setdefault(key,default=None)若key存在,则笼罩之前的值,若key不存在,则给字典添加key-value对>>>d.setdefault(name,zhou)alex>>>d{name:alex,sex:man}>>>d.setdefault(haha,xixi)xixi>>>d{haha:xixi,name:alex,sex:man}(6)dict.update(dict2)将字典dict2的键值对添加到dict>>>d={name:alex,sex:man}>>>d1={age:100,address:shenzhen}>>>d.update(d1)>>>d{age:100,address:shenzhen,name:alex,sex:man(7)sorted(dict)前往一个有序的包括字典一切key的列表>>>sorted(d)[address,age,name,sex]2.聚集setpython中聚集对象(set)是一组无序分列的可哈希的值,包括两品种型:可变聚集(set)和弗成变聚集(frozenset),所以set不是可哈希的,frozenset是可哈希的,能看成字典的键。>>>s=set(a)>>>hash(s)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:unhashabletype:set>>>fs=frozenset(a)>>>hash(fs)-13050648813176147142.1聚集经常使用操作(1)创立聚集>>>s=set(alexzhou)>>>sset([a,e,h,l,o,u,x,z])>>>fs=frozenset(alexzhou)>>>fsfrozenset([a,e,h,l,o,u,x,z])(2)遍历聚集>>>foreins:...printe...aehlouxz(3)更新聚集(add/update/remove/discard/pop/clear(-=))s.add(obj):添加对象objs.update(s1):用s1中的成员修正s,s如今包括s1的成员s.remove(obj):从聚集s中删除obj,若obj不存在,则激发KeyError毛病s.discard(obj):假如obj是s的成员,则删除objs.pop():删除聚集s中随意率性一个对象,并前往s.clear():删除聚集s中一切元素>>>s=set(alexzhou)>>>s.update(hai)>>>sset([a,e,i,h,l,o,u,x,z])>>>s.add(hai)>>>sset([a,hai,e,i,h,l,o,u,x,z])>>>s.remove(hai)>>>sset([a,e,i,h,l,o,u,x,z])>>>s-=set(alex)>>>sset([i,h,o,u,z])>>>s.pop()i>>>sset([h,z,u,o])>>>s.discard(h)>>>sset([z,u,o])>>>s.clear()>>>sset([])>>>fs=frozenset(alexzhou)>>>fs.add(z)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>AttributeError:frozensetobjecthasnoattributeadd(4)聚集比拟s1.issubset(s2):检测s1能否是s2的子集,是则前往True,不然前往Falses1.issuperset(s2):检测s1能否是s2的超集,是则前往True,不然前往False>>>s=set(alexzhou)>>>fs=frozenset(alexzhou)>>>s==fsTrue>>>s2=set(alexzhou)>>>s==s2True>>>s3=set(alexzhouj)>>>s>s3False>>>s<s3True>>>s(5)结合union操作(s1|s2,s1.union(s2))发生的聚集的每一个元素至多是个中一个聚集的成员。假如阁下双方的聚集类型雷同,则发生的成果是雷同的,若分歧,则发生的成果跟左操作数雷同。>>>s1=set(abc)>>>fs=frozenset(de)>>>s1|fsset([a,c,b,e,d])>>>type(s1|fs)<typeset>>>>type(fs|s1)<typefrozenset>>>>s2=set(fg)>>>type(s1|s2)<typeset>>>>s1.union(fs)set([a,c,b,e,d])>>>type(s1.union(fs))<TYPE?set?>>>>type(fs.union(s1))<TYPE?frozenset?>(6)交集s1&s2,补集s1-s2,异或s1^s2交集:新聚集中的元素同时是s1和s2的元素C>s1.intersection(s2)补集:新聚集中的元素只属于s1,不属于C>s1.difference(s2)异或:新聚集中的元素不克不及同时属于s1和s2C>s1.symmetric_difference(s2)>>>fs=frozenset(de)>>>s=set(def)>>>s&fsset([e,d])>>>s-fsset([f])>>>fs-sfrozenset([])>>>s^fsset([f])>>>s.intersection(fs)set([e,d])>>>s.difference(fs)set([f])>>>s.symmetric_difference(fs)set([f])
复制代码
小知识:CentOS来自于RedHatEnterpriseLinux依照开放源代码规定释出的源代码所编译而成。
乐观 该用户已被删除
沙发
发表于 2015-1-16 19:59:32 | 只看该作者

来看看:python字典和聚集

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。
海妖 该用户已被删除
板凳
发表于 2015-1-19 05:22:57 | 只看该作者
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。
再现理想 该用户已被删除
地板
发表于 2015-1-27 23:54:26 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-5 17:06:37 | 只看该作者
有疑问前,知识学习前,先用搜索。
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-13 03:12:57 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
兰色精灵 该用户已被删除
7#
发表于 2015-3-3 13:58:39 | 只看该作者
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。
分手快乐 该用户已被删除
8#
发表于 2015-3-11 12:27:41 | 只看该作者
一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。
谁可相欹 该用户已被删除
9#
发表于 2015-3-26 16:05:46 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 08:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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