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

[经验分享] python dict字典

[复制链接]
发表于 2015-4-21 13:04:20 | 显示全部楼层 |阅读模式
  
      当我基本能从事Django框架来对网站进行开发的时候,发现对Python的知识了解得太少了,甚至到了知识匮乏的阶段。看来,我得温习一下Python知识了。
  据我个人的理解,Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。下面我将对这几个内置的数据类型进行总结。
  Dictionary(字典)
  首先,什么是字典呢?
  通俗地来讲,字典无非就是很多的数据,但是它有一个目录,可以通过目录中的一个简单值来找到与之相对于的详细信息。换句话来说,目录就是内容的一个特殊标示,即目录中的每一个字段,都会在内容中有与之相对应的详细信息。也就是说,目录中的每一个信息都是唯一的,与目录中的其他信息互不冲突。
  在Python的Dictionary不只是用于存储字符串。Dictionary的值可以是任意数据类型,包括字符串,整数,对象,甚至其它的 dictionary。在单个 dictionary里, dictionary的值并不需要全都是同一数据类型,可以根据需要混用和匹配。但是Python的key就比较严格了,它们可以是字符串,整数(我知道的只有这两种)。也可以在一个 dictionary中混用和配匹 key的数据类型。
  定义Dictionary
  dic = {"server":"apache", "database":"master"}每一个元素都是一个 key-value对, 整个元素集合用大括号括起来。可以通过 key来引用其值,但是不能通过值获取 key。所以d["server"]的值为 'apache'。
  修改Dictionary
  在一个 dictionary中不能有重复的key,但我们可以给一个存在的 key赋值,覆盖原有的值。如,我要将Dictionary dic中“server”的值改为“weblogic”,dic[“server”] =“weblogic”。
  添加key-value
  添加键值对其实很简单,举个简单的例子:我要在Dictionary中添加user=’root’的键值对,dic[“user”] = “root”。
  Dictionary中的常用方法:


len(a)



得到字典a中元素的个数



a[k]



取得字典a中键K所对应的值



a[k] = v



设定字典a中键k所对应的值成为v



del a[k]


  使用 key从一个 dictionary中删除独立的元素。如,删除Dictionary dic中的user=’root’:del dic[“user”]


a.clear()



从一个 dictionary中清除所有元素。如,删除Dictionary dic中的所有元素:dic.clear()



a.copy()



得到字典副本



k in a



字典中存在键k则为返回True,没有则返回False



k not in a



字典中不存在键k则为返回true,反之返回False



a.has_key(k)



判断字典a中是否含有键k



a.items()



得到字典a中的键—值对list



a.keys()



得到字典a中键的list



a.update()



从b字典中更新a字典,如果键相同则更新,a中不存在则追加.



a.fromkeys(seq[, value])



创建一个新的字典,其中的键来自sql,值来自value



a.values()



得到字典a中值的list



a.get(k[, x])



从字典a中取出键为k的值,如果没有,则返回x



a.setdefault(k[, x])



将键为k的值设为默认值x。如果字典a中存在k,则返回k的值,如果不存在,向字典中添加k-x键值对,并返回值x



a.pop(k[, x])



取出字典a中键k的值,并将其从字典a中删除,如果字典a中没有键k,则返回值x



a.popitem()



取出字典a中键值对,并将其从字典a中删除



a.iteritems()



返回字典a所有键-值对的迭代器。



a.iterkeys()



返回字典a所有键的迭代器。



a.itervalues()



返回字典a所有值的迭代器。


  
  注意:
  Dictionary中的key值是大小写敏感的。并且在同一个dictionary中不能有重复的key值。并且,Dictionary中没有元素顺序的概念。
  

python内置数据类型
1. Dictionary是一个内置数据类型,定义了键和值之间一对一的关系,类似java里的hashtable的实例,他是无序的,key是大小写敏感的
与java不同的是,key只能是字符串,整数或者基本类型,value是可以是不同数据类型的值,
del可以用key删除元素,用clear清空
keys返回key的list,values返回值的list,items()返回一个dictionary的tuple
2. List:更像java里的数组,ArrayList
可以采用负数索引,从list的尾部开始向前计数
直接用a[1:n]实现list的分片
直接append在队尾添加元素,在insert(pos, obj)在pos出加元素,extend连接list
直接用index找元素在list中的位置,没找到时会引发异常,可以用in判断是否在
直接用remove删除元素,可以直接用pop得到并删除以后一个元素
list可以用*运算符,当做重复器。[1,2]*3 = [1,2,1,2,1,2]
简单方法将list中的每个元素应用一个函数,映射为另一个list
li=[1,2,3,4]
[elem*2 for elem in li]
[2,4,6,8]
3. Tuple: 不可变的list,tuple可以用作dictionary的key
tuple可以用于一次赋值多个值
4. 变量没有定义,首次赋值产生,当超出作用域就自动消亡
变量赋值可以分行,用\作为续行符
不能使用一个没有赋值的变量
5. range可以用来返回一个整数的list
6. python可以支持格式化字符串,将一个值插于在%s的位置
“string template contains %s" %(params);
%d表示整数, %f表示浮点数(6位小数), %.2f表示两位小数,%+。2f表示打印正负
7. ";".join(list)用";"将list里的元素连接
     string.split(";")对应是将字符串分割

运维网声明 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-59262-1-1.html 上篇帖子: Python学习笔记 === python自省 下篇帖子: Python socket编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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