爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 13172|回复: 3

[参考资料] Python进阶01 词典

[复制链接]

新浪微博达人勋

发表于 2012-6-7 18:00:59 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

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

x
                                原文地址
http://www.cnblogs.com/vamei/archive/2012/06/06/2537436.html

                       
                                通过我们的基础教程,我们已经对Python建立了基本概念,也对对象和类有一个相对明确的认识。
我们的进阶教程就是对基础教程的进一步拓展,进一步了解Python中各个内置的对象,以及它们的用途。
之前我们说了,表是Python里的一个类。一个特定的表,比如说nl = [1,3,8],就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 nl.append(15)。
现在,我们要介绍一个新的类,就是词典 (dictionary)。与表相类似,词典也可以储存多个元素。这种可以用来储存多个元素的对象统称为容器(container)。

1. 基本概念

常见的创建词典的方法:
>>> dict = {'tom':11, 'sam':57,'lily':100}

>>> print type(dict)

词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,键是一个字符串,值可以是任意对象。键和值两者一一对应。

(实际上,表的元素也可以是任意对象)

比如上面的例子中,‘tom’对应11,'sam对应57,'lily'对应100


与表不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。

>>> print dict['tom']

>>> dict['tom'] = 30

>>> print dict


可以构建一个新的空的词典:

>>> dict = {}

>>> print dict


在词典中增添一个新元素的方法:

>>> dict['lilei'] = 99

>>> print dict

(引用一个新的键,赋予对应的值)


2. 对dict的元素进行循环调用:


dict = {'lilei': 90, 'lily': 100, 'sam': 57, 'tom': 90}for key in dict:    print dict[key]

可以看到,在循环中,dict的一个键会提取出来赋予给key变量。
通过print的结果,我们可以再次确认,dict中的元素是没有顺序的。

3. 词典的其它常用方法
>>> print dict.keys()            # 返回dict所有的键
>>> print dict.values()         # 返回dict所有的值
>>> print dict.items()           # 返回dict所有的元素(键值对)
>>> dict.clear()                    # 清空dict,dict变为{}

另外有一个很常用的用法:
>>> del dict['tom']                # 删除 dict 的‘tom’元素
del是Python中保留的关键字,用于删除对象。

与表类似,你可以用len()查询词典中的元素总数。

总结:
词典的每个元素是键值对。元素没有顺序。
dict = {'tom':11, 'sam':57,'lily':100}
dict['tom'] = 99

for key in dict: ...

del    len()



作者:Vamei出处:http://www.cnblogs.com/vamei欢迎转载,也请保留这段声明。谢谢!

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-7 20:30:58 | 显示全部楼层
终于等到tom老师的课程啦
来交作业啦
请tom看一下代码咯

有两个问题:
1 字典名称我试了一下 可以用别的,但是例子中用的是dict 而且也是python中的高亮字符,是否有什么关系呢
2 我这样给字典赋值的方法是否可行呢?有没有什么规范之类的呢?

  1. computer=['LENOVO','ACER','DELL','ASUS','GATEWAY']
  2. price=['$590','$480','$630','$560','$410']
  3. buy={}
  4. c=0
  5. for i in computer:
  6.     buy[ i]=price[c]
  7.     c=c+1
  8. print buy
  9. print len(buy)
  10. del buy['ACER']
  11. print buy
  12. print buy['LENOVO']
  13. print len(buy)
  14. print buy.keys()
  15. print buy.items()
  16. print buy.clear()


以上是我的代码,运行正常....请指教

QQ截图20120607205543.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-8 09:06:18 | 显示全部楼层

嗯,如果没错的话,dict是python里的转换成词典的一个内置函数。命名的时候应该避免。这个我做得不好。比如可以是dic1.

你这样构建词典当然没有问题了。还有一个常用的方法,dic = dict(zip(a,b)), 是用两个表构建dictionary,你可以查看一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-8 15:23:05 | 显示全部楼层
ztftom 发表于 2012-6-8 09:06
嗯,如果没错的话,dict是python里的转换成词典的一个内置函数。命名的时候应该避免。这个我做得不好。比 ...

恩,刚刚尝试了一下,确实很方便的说
期待tom上新的教程咯...
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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