Python字典的入门案例

查看python版本:

[[email protected] ~]# python -V
Python 2.7.5

1.基本的字典操作

案例1:简单电话本实现

[[email protected] ~]# vim addresslist.py 

# -*- coding: utf-8 -*- 

#一个简单的数据库通讯录
#字典使用人名作为键。每个人使用另一个字典来表示,其键‘phone‘和‘addr’分别表示电话号码和地址

people = {

        ‘Wang‘:{
                ‘phone‘:‘12345‘,
                ‘addr‘:‘BJ‘
        },
         ‘Ni‘:{
                ‘phone‘:‘23456‘,
                ‘addr‘:‘NJ‘
        },
        ‘Ma‘:{
                ‘phone‘:‘34567‘,
                ‘addr‘:‘DJ‘
        }

}

#针对电话号码和地址使用的描述性标签,会在打印输出的时候用到

labels = {

        ‘phone‘:‘phone number‘,
        ‘addr‘:‘address‘
}

#查找电话号码还是地址
name = raw_input(‘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])
else:
        print ‘Sorry,I do not know‘

运行结果:

[[email protected] ~]# python addresslist.py
input name:Wang
Phone number (p) or address (a) ?a
Wang‘s address is BJ.
[[email protected] ~]# python addresslist.py
input name:pppp
Phone number (p) or address (a) ?p
Sorry,I do not know

使用get()方法访问(对比与上例中的区别,省略相同的代码)

key = request     #请求既不是‘a‘,也不是‘p‘
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])
#else:
#       print ‘Sorry,I do not know‘
#
#使用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)

  

示例输出:

[[email protected] ~]# python addresslist.py
input name:Wang
Phone number (p) or address (a) ?a
Wang‘s address is BJ.
[[email protected] ~]# python addresslist.py   //什么都不输入,因为设置了默认值,所以程序不会报错
input name:
Phone number (p) or address (a) ?
‘s  is not available.

  

2.字典的格式化字符串

(1).在每个转换说明符中的%后面,可以加上键(用圆括号括起来),后面再跟上其他说明元素。

>>> phonebook = {‘Wang‘:‘1234‘,‘Ni‘:‘2345‘,‘Ma‘:‘3456‘}
>>> "Wang‘s phone number is %(Wang)s." % phonebook
"Wang‘s phone number is 1234."

(2).除了增加字符串键外,转换说明符还可以像以前一样工作。当以这种方式使用字典的时候,只要所有给出的键都可以在字典中找到,就可以使用任意数量的转换说明符。这类字符串格式化在模板系统中非常有用。

>>> 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>

3.update方法可以利用一个字典项去更新另外一个字典:

>>> d = {
... ‘title‘:‘Python Web Site‘,
... ‘url‘:‘http://www.python.org‘,
... ‘changed‘:‘2015-09-25‘
... }
>>> x={‘title‘:‘Python‘}
>>> d.update(x)
>>> d
{‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘2015-09-25‘, ‘title‘: ‘Python‘}
>>> x
{‘title‘: ‘Python‘}

提供的字典中的项会被添加到旧的字典中,若有相同的键,则会进行覆盖。

4.values方法会以列表的形式返回字典中的值

>>> d.values()
[‘http://www.python.org‘, ‘2015-09-25‘, ‘Python‘]

5.keys方法会以列表的形式放回字典中的键

>>> d.keys()
[‘url‘, ‘changed‘, ‘title‘]
>>>

6.items方法将字典中的所有项以列表形式返回

>>> d.items()
[(‘url‘, ‘http://www.python.org‘), (‘changed‘, ‘2015-09-25‘), (‘title‘, ‘Python‘)]

参考资料:

Python基础教程(第二版.修订版)

时间: 2024-11-03 01:39:16

Python字典的入门案例的相关文章

Python爬虫Scrapy(二)_入门案例

本章将从案例开始介绍python scrapy框架,更多内容请参考:python学习指南 入门案例 学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的Spider并提取出结构化数据(Item) 编写Item Pipelines来存储提取到的Item(即结构化数据) 一.新建项目(scrapy startproject) 在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令: scrapy startproject cnblogS

15.python 字典dict - python基础入门

前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict. python中的字典可与字符串/列表/元组不同,因为字典dict需要由两部分组成,分别是key和value,简称:键值对,下面具体讲解一下关于字典的特点: 1.由一个或者多个键值对构成,键值对的类型可以不相同也可以相同: 2.字典中的键值对需要写在{}中括号内部,键值对中的key和value用:隔开,键值对与键值对之间用逗号隔开: 3.字典是一个无序

Python Requests快速入门

快速上手 迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: >>> import requests 然后,尝试获取某个网页.本例子中,我们来获取Github的公共时间线 >>> r = re

《Python编程从入门到实践》_第十章_文件和异常

读取整个文件 文件pi_digits.txt #文件pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取整个文件,再将其内容显示到屏幕中: with open("pi_digits.txt") as fileobject: contents = fileobject.read() print(contents) #运行结果 3.1415926535 8979323846 2643383279 使用函数open()打开文件

_00019 Storm的体系结构介绍以及Storm入门案例(官网上的简单Java案例)

博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spark ... 云计算技术 转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作! qq交流群:214293307  (期待与你一起学习,共同进步) # Storm

python之scrapy入门教程

看这篇文章的人,我假设你们都已经学会了python(派森),然后下面的知识都是python的扩展(框架). 在这篇入门教程中,我们假定你已经安装了Scrapy.如果你还没有安装,那么请参考安装指南. 我们将使用开放目录项目(dmoz)作为抓取的例子. 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行站点,并提取Items 写一个Item Pipeline用来存储提取出的Items Scrapy是由Python编写的.如果你是Pyth

基于Python数据分析与机器学习案例实战教程

课程--基于Python数据分析与机器学习案例实战教程 分享网盘下载--https://pan.baidu.com/s/1jHSaRAY 密码: xk37 课程背景基于数据分析与机器学习领域,使用python作为课程的实战语言,随着大数据与人工智能领域日益火爆,数据分析和机器学习建模成了当下最热门的技术,课程旨在帮助同学们快速掌握python数据分析包以及经典机器学习算法并通过对真实数据集分析进行实战演示. 课程风格通俗易懂,基于真实数据集案例实战. 主体课程分成三个大模块 (1)python数

大牛整理最全Python零基础入门学习资料

大牛整理最全Python零基础入门学习资料 0 发布时间:『 2017-11-12 11:56 』     帖子类别:『人工智能』  阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料』的责任编辑:老王) 摘要:大牛整理最全Python零基础入门学习资料 Python数据类型--数字 Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. var1 = 1 var2 = 10 您也可以使

Scrapy框架----- 入门案例

入门案例 学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的 Spider 并提取出结构化数据(Item) 编写 Item Pipelines 来存储提取到的Item(即结构化数据) 一. 新建项目(scrapy startproject) 在开始爬取之前,必须创建一个新的Scrapy项目.进入自定义的项目目录中,运行下列命令: scrapy startproject mySpider 其中, mySpider 为项目名称,可以看到将会创建一个 mySpider