Python中字典的基础知识归纳小结

定义一个字典

>>> d = {"server":"mpilgrim", "database":"master"} 1
>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["server"]         2
'mpilgrim'
>>> d["database"]         3
'master'
>>> d["mpilgrim"]         4

Traceback (innermost last):  File "<interactive input>", line 1, in ?KeyError: mpilgrim

首先,我们创建了一个拥有两个元素的新字典,并将其赋值给变量 d。每一个元素都是一个键-值对,整个元素集合用大括号括起来。
server 是一个键字,它所关联的值为 mpilgrim,用 d["server"] 来引用。
database 是一个键字,它所关联的值为 master,用 d["database"] 来引用。

你可以通过键字来得到值,但是不能通过值得到键字。所以 d["server"] 为 mpilgrim,但是使用 d["mpilgrim"] 会引发一个异常,因为 mpilgrim 不是一个键字。

修改一个字典

>>> d
{'server': 'mpilgrim', 'database': 'master'}
>>> d["database"] = "pubs" 1
>>> d
{'server': 'mpilgrim', 'database': 'pubs'}
>>> d["uid"] = "sa"  2
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}

不能在一个字典中有重复的键字。给一个存在的键字赋值会抹掉原来的值。

可以在任何时候加入新的键-值对。这种语法同修改存在的值一样。(是的,它可能某天会给你带来麻烦,你可能认为增加了新值,但实际上只是反复地修改了同样的值,因为你的键字没有按照你的想象改变。)

注意新的元素(键字为 uid,值为 sa)出现在字典中间。实际上,它只不过是一种巧合,在第一个例子中的元素看上去是有序的。现在它们看上去无序了则更是一种巧合。

Note

字典没有元素顺序的概念。说元素顺序乱了是不正确的,它们只是简单的无序。这是一个重要的特性,它会在你想要以一种特定的,可重复的顺序(象以键字的字母表顺序)存取字典元素的时候骚扰你。有一些实现的方法,它们只是没有加到字典中去。

在字典中混用数据类型

>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
>>> d["retrycount"] = 3 1
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d[42] = "douglas" 2
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}

字典不是只用于字符串。字典的值可以是任意数据类型,包括字符串,整数,对象,或者甚至其它的字典。在一个单个字典里,字典的值并不需要全都是同一数据类型,可以根据需要混用和配匹。
字典的关键字要严格一些,但是它们可以是字符串,整数和几种其它的类型(后面还会谈到这一点)。也可以在一个字典中混用和配匹关键字。

从字典中删除元素

>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
>>> del d[42] 1
>>> d
{'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3}
>>> d.clear() 2
>>> d
{}

del 允许你根据键字将单个元素从字典中删除。
clear 会删除一个字典中所有元素。注意空的大括号所表示的集合说明一个字典没有元素。

字符串是大小写敏感

>>> d = {}
>>> d["key"] = "value"
>>> d["key"] = "other value" 1
>>> d
{'key': 'other value'}
>>> d["Key"] = "third value" 2
>>> d
{'Key': 'third value', 'key': 'other value'}

将一个值赋给一个存在的字典关键字只是简单的用新值替换旧值。

这样做不会将一个值赋给一个存在的字典关键字,因为在Python中字符串是大小写敏感的,所以 'key' 与 'Key' 是不同的。这样就在字典中生成了一个新的键/值对。对你来说可能差不多,但对于Python来说,完全是不同的。

如何访问字典中的值:

>>> dict2 = {'name':'earth','port':80}  

>>> for key in dict2.keys():     

... print 'key=%s,value=%s' %(key,dict2[key])

...

key=name,value=earth

key=port,value=80

>>> for key in dict2:       

... print 'key=%s,value=%s' %(key,dict2[key])

...

key=name,value=earth

key=port,value=80

获取字典某个元素值:

>>> dict2['name']

'earth'

>>> print 'host %s is running on port %d' %(dict2['name'],dict2['port'])

host earth is running on port 80

检查字典中是否有某个键的方法 has_key()或in,not in

>>> 'name' in dict2

True

>>> 'server' in dict2

False

>>> 'name' in dict2 

True

>>> dict2['name']

'earth'

>>> dict2.has_key('server')

False

>>> dict2.has_key('name') 

True

一个字典中混用数字和字符串的例子:

>>> dict3 = {}

>>> dict3[1] = 'abc'

>>> dict3['1'] = 3.14159

>>> dict3[3.2] = 'xyz'

>>> dict3

{'1': 3.14159, 1: 'abc', 3.2: 'xyz'}

整体赋值:

>>> dict3 = {'1': 3.14159, 1: 'abc', 3.2: 'xyz',33:'hehe'}

>>> dict3

{'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'}

更新字典:

>>> dict2['name'] = 'venus'

>>> dict2['port'] = 6969

>>> dict2['arch'] = 'sunos5'

>>> print 'host %(name)s is running on port %(port)d' %dict2

host venus is running on port 6969

删除字典元素和字典

>>> dict2

{'arch': 'sunos5', 'name': 'venus', 'port': 6969}

>>> del dict2['name']

>>> dict2

{'arch': 'sunos5', 'port': 6969}

>>> dict2.clear()

>>> dict2

{}

>>> del dict2

>>> dict2

Traceback (most recent call last):

 File "<stdin>", line 1, in <module>

NameError: name 'dict2' is not defined

>>> dict3

{'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'}

>>> dict3.pop(33) 

'hehe'

>>> dict3

{'1': 3.14159, 1: 'abc', 3.2: 'xyz'}

注:避免使用内建对象名字作为变量的标识符

类似: dict,list,file,bool,str,input,len

时间: 2015-08-17

python常用知识梳理(必看篇)

接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理: 1)避免'\n'等特殊字符的两种方式: a)利用转义字符'\' b)利用原始字符'r' print r'c:\now' 2)单行注释,使用一个#,如: #hello Python 多行注释,使用三个单引号(或三个双引号),如: '''hello python hello world''' 或 """hello python hello world""" 另外跨越多行

Python语言的12个基础知识点小结

python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进制转换,Python调用系统命令或者脚本,Python 读写文件. 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串 复制代码 代码如下: >>> line = '<IMG ALIGN="middle" SRC=\'#\'

归纳整理Python中的控制流语句的知识点

程序流 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句.例如,清单 1 展示了几个简单的语句.当把它们键入 Python 解释器中(或者将它们保存在一个文件中,并作为一个 Python 程序来执行)时,读取语句的顺序是从左到右. 当读到一个行结束符(比如换行符)时,Python 解释器就前进到下一行并继续,直到没有了代码行. 清单 1. 一个简单的 Python 程序 >>> i = 1 >>> type(i)

Python中最常用的操作列表的几种方法归纳

这里介绍几个常用的列表操作 添加元素 添加元素使用列表的内置方法append number = [1, 2, 3, 4] number.append(5) # number = [1, 2, 3, 4, 5] number.append([6,7]) # number = [1, 2, 3, 4, 5, [6, 7]] number.append({'a':'b'}) # number = [1, 2, 3, 4, [6, 7], {'a', :'b'} 可以看到强大的python列表可以嵌套任

Python中的列表知识点汇总

Python list 在介绍 Python tuple 时,我使用了类比的方法,将其比做一个袋子,您可以在袋子中存放不同的东西.Python list 与此非常类似,因此,它的功能与袋子的功能也非常类似.但有一点是不同的,即您可以使用方括号创建 list,如清单 1 所示. 清单 1. 在 Python 中创建一个 list >>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8,

Python易忽视知识点小结

这里记录Python中容易被忽视的小问题 一.input(...)和raw_input(...) #简单的差看帮助文档input(...)和raw_input(...)有如下区别 >>> help(input) Help on built-in function input in module __builtin__: input(...) input([prompt]) -> value Equivalent to eval(raw_input(prompt)). >>

Python编程入门的一些基本知识

Python与Perl,C和Java语言等有许多相似之处.不过,也有语言之间有一些明确的区别.本章的目的是让你迅速学习Python的语法. 第一个Python程序: 交互模式编程: 调用解释器不经过脚本文件作为参数,显示以下提示: $ python Python 2.6.4 (#1, Nov 11 2014, 13:34:43) [GCC 4.1.2 20120704 (Red Hat 5.6.2-48)] on linux2 Type "help", "copyright&

Python编程入门之Hello World的三种实现方式

本文实例讲述了Python编程入门之Hello World的三种实现方式.分享给大家供大家参考,具体如下: 第一种方式: $python >>>print('hello world') 屏幕上输出hello world print是一个常用函数 第二种方式: 复制代码 代码如下: $python hello.py 第三种方式: #!/usr/bin/env python chmod 755 hello.py ./hello.py 希望本文所述对大家Python程序设计有所帮助.

C、C++、Java到Python,编程入门学习什么语言比较好

摘要:回顾编程语言几十年来的兴衰起伏,似乎也折射了整个信息产业的变迁消亡,想要在技术的洪流里激流勇进,找准并学精一两门编程语言更加显得至关重要. 最近,TIOBE更新了7月的编程语言榜单,常年霸榜的C.Java和Python依然蝉联前三位.万万没想到的是,R语言居然冲到了第八位,创下了史上最佳记录.而且后续随着业内对数据统计和挖掘需求的上涨,R语言热度颇有些势不可挡的架势. 然而作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调.也难怪有很多初学者会有

新手入门Python编程的8个实用建议

前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触Python编程入门不久,也希望大家少走弯路,多少有些地方可以给大家借鉴. 目录先放出来 项目文件事先做好归档 永远不要手动修改源数据并且做好备份 做好路径的正确配置 代码必要的地方做好备注与说明 加速你的Python循环代码 可视化你的循环代码进度 使用高效的异常捕获工具 要多考虑代码健壮性 1.

Python Socket编程入门教程

这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs.python.org/library/socket.html 基本上,Socket 是任何一种计算机网络通讯中最基础的内容.例如当你在浏览器地址栏中输入 www.jb51.net 时,你会打开一个套接字,然后连接到 www.jb51.net 并读取响应的页面然后然后显示出来.而其他一些聊天客户端如

Python编程argparse入门浅析

本文研究的主要是Python编程argparse的相关内容,具体介绍如下. #aaa.py #version 3.5 import os #这句是没用了,不知道为什么markdown在编辑代码时,不加这一句,就不能显示代码高亮[汗] import argparse parser = argparse.ArgumentParser(description='Process some integers...') #初始化一个分析器 #parser.add_argument(中的参数) #__init

python编程培训 python培训靠谱吗

我们在论坛和贴吧上看到无论是老的程序员和新手都想更快的入门和精通python编程,但是市面上众多的书籍让大家无从下手,很多书籍和视频都声称能够快速学习,时间有限,大家哪有精力一个个尝试呢,我们的小编和技术人员根据大家这方面的困惑,全面分析一下关于python编程培训等方面的问题,希望我们的分析能让你的python学习之路有一个方向. 如果你是新手还没有入门,那么找一本不错的书籍是你学习python的比较好的途径之一,我们先给大家分享基本有价值的python编程书籍: python编程学习电子书

python入门前的第一课 python怎样入门

人工智能时代的到来,很多文章说这么一句:"不会python,就不要说自己是程序员",这说的有点夸张了,但确实觉得目前python这个语言值得学习,而且会python是高薪程序员的必备技能. 很多初学Python的同学都面临着很多的疑问,Python学习步骤应该如何安排?多长时间可以达到精通呢? Python学习步骤应该怎样安排: 首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法. 一.明确自己的学习目标 不管我们学习什么样的知识,都要对自己的学

一篇文章入门Python生态系统(Python新手入门指导)

译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍.文中提到了一些第三方库,但是Python社区中强大的第三方库并不止这些,欢迎各位Pytonistas补充. •原文链接:http://mirnazim.org/writings/python-ecosystem-introduction/ •译文链接:http://codingpy.com/artic

Python编程实现的简单Web服务器示例

本文实例讲述了Python编程实现的简单Web服务器.分享给大家供大家参考,具体如下: 最近有个需求,就是要创建一个简到要多简单就有多简单的web服务器,目的就是需要一个后台进程用来接收请求然后处理并返回结果,因此就想到了使用Python来实现. 首先创建一个myapp.py文件,其中定义了一个方法,所有的请求都会经过此方法,可以在此方法里处理传递的url和参数,并返回结果. def myapp(environ, start_response): status = '200 OK' header