- 浏览: 518796 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (310)
- PHP (46)
- Java (50)
- Perl (0)
- Bash (5)
- C# (9)
- JavaScript (5)
- InDesign (7)
- 百宝箱 (5)
- 排错 (3)
- 招聘 (5)
- PHP他山之石 (3)
- SQL(DML) (10)
- Flex (15)
- LAMP (1)
- DIV+CSS (1)
- C#2008 (4)
- LOGO (7)
- WorkLog (1)
- 工作 (26)
- Groovy (7)
- 海量数据 (4)
- C/C++ (1)
- Android (1)
- PYTHON (13)
- Java开发实战1200例 (1)
- Java枚举与泛型 (16)
- Java基础应用 (24)
- poj (3)
- Java数组与集合 (18)
- 疑难解析 (3)
- JavaWeb (8)
- Jython (2)
- 成功之路 (0)
- Golang (2)
- Spring (2)
- 微信小程序 (0)
最新评论
-
DawnBells:
...
java.util.concurrent 之六:使用Future类和Callable类 -
kanglecjr:
http://tieba.baidu.com/f?kz=101 ...
泰语字母好看的手写体 -
zxjlwt:
学习了。http://surenpi.com
java.util.concurrent 之六:使用Future类和Callable类 -
spring_springdata:
java jsoup开源框架demo使用实例教程源代码下载:h ...
JSOUP获取网页数据返回403错误(403 error loading URL,connection类) -
narochids:
MARK!
JavaScript+Ajax实例大全(1521例以上),可以随编辑随执行
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. #4.1字典的使用 >>> names=['Alice','Beth','Cecil','Dee-Dee','Earl'] >>> numbers=['2341','9102','3158','042','5551'] >>> names=['Alice','Beth','Cecil','Dee-Dee','Earl'] >>> numbers=['2341','9102','3158','042','5551'] >>> numbers[names.index('Cecil')] '3158' >>> 0142 98 >>> 0912 SyntaxError: invalid token >>> 0812 SyntaxError: invalid token #4.2创建和使用字典 >>> phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} >>> phonebook['Cecil'] '3258' #4.2.1 dict函数 >>> items=[('name','Gumby'),('age',42)] >>> d = dict(items) >>> d {'age': 42, 'name': 'Gumby'} >>> d['name'] 'Gumby' >>> d = dict(name='Gumby', age=42) >>> d {'age': 42, 'name': 'Gumby'} #4.2.2 基本字典操作 #len(d)返回d中项(键值对)的数量 #d[k]返回关联到键k上的值 #d[k]=v将值v关联到键k上 #del d[k]删除键为k的项 #k in d检查d中是否包含键为k的项 #键的类型:字典的键可以是整型,浮点型(实型),字符串或元组. 字典的键可以是任何不可变类型. #在字典中检查键的成员资格比在列表中检查值的成员资格更有效,数据结构的规模越大,两者的效率差距越明显 >>> x=[] >>> x[42]='Foobar' Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> x[42]='Foobar' IndexError: list assignment index out of range >>> x={} >>> x[42]='Foobar' >>> x {42: 'Foobar'} #代码清单4-1 字典示例 #4.2.3 字典的格式化字符串 >>> phonebook {'Beth': '9102', 'Alice': '2341', 'Cecil': '3258'} >>> "Cecil's phone number is %(Cecil)s. " % phonebook "Cecil's phone number is 3258. " >>> template = '''<html> <head><title>%(title)s</title></head> <body> <h1>%(title)s</h1> <p>%(text)s</p> </body>''' >>> data = {'title':'My Home Page', 'text':'Welcome to my home page!'} >>> print template % data <html> <head><title>My Home Page</title></head> <body> <h1>My Home Page</h1> <p>Welcome to my home page!</p> </body> #4.2.4 字典方法 #1.clear方法 >>> d={} >>> d['name']='Gumby' >>> d['age']=42 >>> d {'age': 42, 'name': 'Gumby'} >>> returned_value = d.clear() >>> d {} >>> print returned_value None >>> x={} >>> y=x >>> x['key']='value' >>> y {'key': 'value'} >>> x={} >>> y {'key': 'value'} >>> >>> x={} >>> y=x >>> x['key']='value' >>> y {'key': 'value'} >>> x.clear() >>> y {} #2.copy方法,这个方法实现的是浅复制(shallow copy) >>> x={'username':'admin', 'machines':['foo','bar','baz']} >>> y=x.copy() >>> y['username']='mlh' >>> y['machines'].remove('bar') >>> y {'username': 'mlh', 'machines': ['foo', 'baz']} >>> x {'username': 'admin', 'machines': ['foo', 'baz']} #使用深复制(deep copy), 复制一个副本 >>> from copy import deepcopy >>> d={} >>> d['names']=''Alfred','Bertrand'] SyntaxError: invalid syntax >>> d['anmes']=['Afred','Bertrand'] >>> c=d.copy() >>> c {'anmes': ['Afred', 'Bertrand']} >>> d['names']=['Alfred','Bertrand'] >>> d {'names': ['Alfred', 'Bertrand'], 'anmes': ['Afred', 'Bertrand']} >>> d.clear() >>> d['names']=['Alfred','Bertrand'] >>> c=d.copy() >>> c {'names': ['Alfred', 'Bertrand']} >>> dc=deepcopy(d) >>> d['names'].append('Clive') >>> c {'names': ['Alfred', 'Bertrand', 'Clive']} >>> dc {'names': ['Alfred', 'Bertrand']} #3.fromkeys方法 >>> {}.fromkeys(['name','age']) {'age': None, 'name': None} >>> dict.fromkeys(['name','age']) {'age': None, 'name': None} >>> dict.fromkeys(['name','age'], '(unknown)') {'age': '(unknown)', 'name': '(unknown)'} >>> #4.get方法 >>> d={} >>> print d['name'] Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> print d['name'] KeyError: 'name' >>> print d.get['name'] Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> print d.get['name'] TypeError: 'builtin_function_or_method' object has no attribute '__getitem__' >>> print d.get('name') None >>> d.get('name','N/A') 'N/A' >>> d['name']='Eric' >>> d.get('name') 'Eric' #代码清单4-2 字典方法示例 #5.has_key方法 >>> d={} >>> d.has_key('name') False >>> d['name']='Eric' >>> d.has_key('name') True #6.items和iteritems >>> d={'title':'Python Web Site', 'url':'http://www.python.org', 'spam':0} >>> d.items() [('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')] >>> it = d.iteritems() >>> it <dictionary-itemiterator object at 0x0134AF30> >>> list(it) #Convert the iterator to a list [('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')] #7.keys方法和iterkeys方法 #keys方法将字典中的键以列表形式返回,而iterkeys则返回键的迭代器 #8.pop方法 >>> d = {'x':1, 'y':2} >>> d.pop('x') 1 >>> d {'y': 2} >>> #9.popitem方法 >>> d={'url':'http://www.python.org', 'spam':0, 'title':'Python Web Site'} >>> d {'url': 'http://www.python.org', 'title': 'Python Web Site', 'spam': 0} >>> d.popitem() ('url', 'http://www.python.org') >>> d {'title': 'Python Web Site', 'spam': 0} >>> d={} >>> d.setdefault('name', 'N/A') 'N/A' >>> d {'name': 'N/A'} >>> d['name']='Gumby' >>> d.setdefault('name','N/A') 'Gumby' >>> d {'name': 'Gumby'} >>> d={} >>> print d.setdefault('name') None >>> d {'name': None} #11.update方法 >>> d={ 'title':'Python Web Site', 'url':'http://www.python.org', 'changed':'Mar 14 22:09:15 MET 2008' } >>> x={'title':'Python Language Website'} >>> d.update(x) >>> d {'url': 'http://www.python.org', 'changed': 'Mar 14 22:09:15 MET 2008', 'title': 'Python Language Website'} #12. values方法和itervalues方法 >>> d={} >>> >>> d[1]=1 >>> d[2]=2 >>> d[3]=3 >>> d[4]=1 >>> d.values() [1, 2, 3, 1] >>> #4.3 小结 #映射:映射可以使用任何不可变对象标识元素. 最常用的类型是字符串和元组. Python唯一内建的映射类型是字典. #利用字典格式化字符串 #字典的方法 #4.3.1本章的新函数 #dict(seq) 用(键,值)对(或者映射和关键字参数)建立字典
字典示例
#coding=utf-8 #e4-1.py 字典示例 #简单数据库 #使用人名作为键的字典,每个人用另一个字典来表示,其键'phone'和'addr'分别表示他们的电话号码和地址. people = { 'Alice': { 'phone':'2341', 'addr':'Foo drive 23' }, 'Beth': { 'phone':'9102', 'addr':'Bar street 42' }, 'Cecil':{ 'phone':'3158', 'addr':'Baz avenue 90' } } #针对电话号码和地址使用的描述性标签, 会在打印输出的时候用到 labels = { 'phone':'phone number', 'addr':'address' } name=raw_input('Name: ') #查找电话号码还是地址? 使用正确的键: request = raw_input('Phone number (p) or address (a)? ') #使用正确的键: if request == 'p': key = 'phone' if request == 'a': key = 'addr' #如果名字是字典中的有效键才打印信息: if name in people: print "%s's %s is %s. " % \ (name, labels[key], people[name][key]) #python e4-1.py #Name: Beth #Phone number (p) or address (a)? p #Beth's phone number is 9102.
字典方法示例
#coding=utf-8 #e4-2 #使用get()的简单数据库 #这里添加代码清单4-1中插入数据库的代码 people = { 'Alice': { 'phone':'2341', 'addr':'Foo drive 23' }, 'Beth': { 'phone':'9102', 'addr':'Bar street 42' }, 'Cecil':{ 'phone':'3158', 'addr':'Baz avenue 90' } } labels = { 'phone':'phone number', 'addr':'address' } name = raw_input('Name: ') #查找电话号码还是地址? request = raw_input('Phone number (p) or address(a)? ') #使用正确的键 key = request #如果请求既不是'p'也不是'a' if request == 'p' : key = 'phone' if request == 'a' : key = 'addr' #使用get()提供默认值: person = people.get(name, {}) label = labels.get(key ,key) result = person.get(key, 'not available') print "%s's %s is %s. " % (name, label, result) #python e4-2.py #Name: Beth #Phone number (p) or address(a)? a #Beth's address is Bar street 42. #python e4-2.py #Name: Cecil #Phone number (p) or address(a)? p #Cecil's phone number is 3158. #python e4-2.py #Name: Cecil #Phone number (p) or address(a)? x #Cecil's x is not available.
发表评论
-
一键执行脚本即可把用户名和密码更新到指定路径下相应的配置文件(支持迭代)
2014-12-14 21:46 8621) 数据库和相关应用的用户名, 密码等敏感信息加密之后集 ... -
Python3.x 中,chr() 和 ord() 默认支持unicode
2014-09-14 15:44 12492In Python 2.x D:\Python27> ... -
如何让python的print函数不自动换行
2014-09-14 15:12 4021使用Python语言的print函数时,输出的每一行都会自 ... -
Python Bible - Ch23 多线程编程
2014-09-10 06:08 1028''' 在Python中,可以通过继承threading ... -
Python基础教程之第9章 魔法方法, 属性和迭代器
2014-06-09 06:11 2869#魔法方法, 属性 和 迭代器 D:\>pytho ... -
Python基础教程之第8章 异常
2014-06-03 06:06 6260#Chapter 8 异常 Python 2.7.5 ( ... -
Python基础教程之第7章 更加抽象
2014-06-02 18:43 1193D:\>python Python 2.7.5 ( ... -
Python基础教程之第6章 抽象
2014-05-29 19:27 2401Python 2.7.5 (default, May 15 ... -
Python基础教程之第5章 条件, 循环和其他语句
2014-05-29 09:57 1358Python 2.7.5 (default, May 15 ... -
Python基础教程之第3章 使用字符串
2014-05-25 12:08 1956Python 2.7.5 (default, May 15 ... -
Python基础教程之第2章 列表和元组
2014-05-25 10:06 8237D:\>python Python 2.7.5 ( ... -
Python基础教程之第1章 基础知识
2014-05-22 05:45 1432#1.1 安装Python #1.1.1 Windows ...
相关推荐
第4章 字典:当索引不好用时 第5章 条件、循环和其他语句 第6章 抽象 第7章 更加抽象 第8章 异常 第9章 魔法方法、属性和迭代器 第10章 充电时刻 第11章 文件和素材 第12章 图形用户界面 第13章 数据库支持...
026字典:当索引不好用时2 027集合:在我的世界里,你就是唯一 028文件:因为懂你,所以永恒 029文件:一个任务 030文件系统:介绍一个高大上的东西 031永久存储:腌制一缸美味的泡菜 032异常处理:你不可
026字典:当索引不好用时2 027集合:在我的世界里,你就是唯一 028文件:因为懂你,所以永恒 029文件:一个任务 030文件系统:介绍一个高大上的东西 031永久存储:腌制一缸美味的泡菜 032异常处理:你不可能总是对的...
25讲:字典:当索引值不好用时 65 26讲:字典:当索引值不好用时2 66 26延:你知道Python的字典是如何存储的吗? 69 27讲:集合:在我的世界里,你就是唯一 71 27结:集合类型内建方法总结 72 28讲:文件:因为懂你...
025字典:当索引不好用时1 P27. 026字典:当索引不好用时2 P28. 027集合:在我的世界里,你就是唯一 P29. 028文件:因为懂你,所以永恒 P30. 029文件:一个任务 P31. 030文件系统:介绍一个高大上的东西 P32....
"025字典:当索引不好用时.mp4"介绍了Python的字典数据结构,字典是通过键值对存储数据的方式,提供了高效且灵活的数据访问。 "039类和对象:拾遗.mp4"可能是关于面向对象编程的补充内容,可能涉及属性、方法、封装...
字典:当索引不好用时(课件) 字符串:各种奇葩的内置方法(课件) 字符串:格式化(课件) 小插曲之变量和字符串(课件) 序列!序列!(课件) 异常处理:你不可能总是对的(课件) 愉快的开始(课件)
2. **025字典:当索引不好用时** - 字典是Python中另一种重要的数据结构,它通过键值对存储数据,而不是像列表那样使用索引。字典提供了高效且灵活的查找方式,是处理关联数据的理想选择。学习如何创建、修改和操作...
【Python数据分析实践:pandas数据结构】 Pandas是Python中用于数据分析的核心库,它基于NumPy构建,提供了高效且易用的数据处理工具。Pandas的主要目标是使数据清洗和分析变得简单,它广泛应用于学术研究、金融...