Python中3种内建数据结构:列表、元组和字典


Posted in Python onNovember 30, 2014

Python中有3种内建的数据结构:列表、元组和字典。参考简明Python教程

1. 列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表,上面记载着你要买的东西,你就容易理解列表了。只不过在你的购物表上,可能每样东西都独自占有一行,而在Python中,你在每个项目之间用逗号分割。

列表中的项目应该包括在方括号中,这样Python就知道你是在指明一个列表。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是 可变的 数据类型,即这种类型是可以被改变的。
例:

#!/usr/bin/env python
#coding:utf8
 
list = ['Linux', 'Nginx', 'MySQL', 'PHP']
 
print 'These items are:',
for item in list:
print item,
 
print '\nadd Apache.'
list.append('Apache')
print 'list is now', list
 
print '\nI will sort my list now'
list.sort()
print 'Sorted list is %s' % list
 
print '\nThe first item ', list[0]
item0 = list[0]
print 'delete first item'
del list[0]
print 'list is now', list

输出

$python using_list.py
These items are: Linux Nginx MySQL PHP
add Apache.
list is now ['Linux', 'Nginx', 'MySQL', 'PHP', 'Apache']
 
I will sort my list now
Sorted list is ['Apache', 'Linux', 'MySQL', 'Nginx', 'PHP']
 
The first item Apache
delete first item
list is now ['Linux', 'MySQL', 'Nginx', 'PHP']

2. 元组
元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
例:

#!/usr/bin/env python
#coding:utf8
 
zoo = ('wolf', 'elephant', 'penguin')
print 'Number of animals in the zoo is', len(zoo)
 
new_zoo = ('monkey', 'dolphin', zoo)
print 'Number of animals in the new zoo is', len(new_zoo)
print 'All animals in new zoo are', new_zoo
print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is', new_zoo[2][2]

输出

$ python using_tuple.py
Number of animals in the zoo is 3
Number of animals in the new zoo is 3
All animals in new zoo are ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))
Animals brought from old zoo are ('wolf', 'elephant', 'penguin')
Last animal brought from old zoo is penguin

3. 字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。

注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。

键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。

记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。

字典是dict类的实例/对象。
例:

#!/usr/bin/env python
#coding:utf8
 
contacts = { 'Admin' : 'admin@3water.com',
'Linuxeye' : 'linuxeye@3water.com',
'Support' : 'support@3water.com'
}
 
print "Linuxeye's address is %s" % contacts['Linuxeye']
 
# Adding a key/value pair
contacts['test'] = 'test@3water.com'
 
# Deleting a key/value pair
del contacts['Support']
 
print '\nThere are %d contacts in the address-book\n' % len(contacts)
for name, address in contacts.items():
print 'Contact %s at %s' % (name, address)
 
if contacts.has_key('test'):
print "\ntest's address is %s" % contacts['test']

输出

$ python using_dict.py
Linuxeye's address is linuxeye@3water.com
 
There are 3 contacts in the address-book
 
Contact Admin at admin@3water.com
Contact test at test@3water.com
Contact Linuxeye at linuxeye@3water.com
 
test's address is test@3water.com
Python 相关文章推荐
python实现调用其他python脚本的方法
Oct 05 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
删除python pandas.DataFrame 的多重index实例
Jun 08 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
Python运行不显示DOS窗口的解决方法
Oct 22 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
简单了解python单例模式的几种写法
Jul 01 Python
OpenCV读取与写入图片的实现
Oct 13 Python
Python函数中定义参数的四种方式
Nov 30 #Python
Python 自动补全(vim)
Nov 30 #Python
给Python IDLE加上自动补全和历史功能
Nov 30 #Python
让 python 命令行也可以自动补全
Nov 30 #Python
Python lambda和Python def区别分析
Nov 30 #Python
Python内置函数之filter map reduce介绍
Nov 30 #Python
Python Queue模块详解
Nov 30 #Python
You might like
PHP文本操作类
2006/11/25 PHP
php中的时间显示
2007/01/18 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Python实现测试磁盘性能的方法
2015/03/12 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
Python pandas常用函数详解
2018/02/07 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
python和opencv实现抠图
2018/07/18 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
python re.match()用法相关示例
2021/01/27 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
挂职思想汇报
2013/12/31 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
亲属关系公证书
2014/04/08 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
Moment的feature导致线上bug解决分析
2022/09/23 Javascript