Python容器的数据类型 (python2)

本文介绍了Python中的三种容器类数据结构:列表、元组和字典。详细讲解了每种数据结构的特点及常用操作方法,并通过实例演示了它们的应用场景。

容器类数据结构:

1,列表:

列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。一旦你创建了一个列表,你可以添加、删除或是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。

介绍几个列表的方法

insert(i, x) ---- 在指定位置插入一项。第一自变量是要在哪一个元素前面插入,用下标表示例如,list.insert(0, x)在列表前面插入,list.insert(len(list), x)等价于list.append(x)。

append(x) ---- 等价于list.insert(len(a), x)

index(x) ---- 在列表中查找值x然后返回第一个值为x的元素的下标。没有找到时出错。

remove(x) ---- 从列表中删去第一个值为x的元素,找不到时出错。

sort() ---- 对列表元素在原位排序。注意这个方法改变列表,而不是返回排序后的列表。

reverse() ---- 把列表元素反序。改变列表。

count(x) ---- 返回x在列表中出现的次数。

Python代码

  • >>> list = ['a','c','g','e','t','b','f','d','g']  
  • >>> list.insert(3,'d')  
  • >>> list  
  • ['a', 'c', 'g', 'd', 'e', 't', 'b', 'f', 'd', 'g']  
  • >>> list.append('c')  
  • >>> list  
  • ['a', 'c', 'g', 'd', 'e', 't', 'b', 'f', 'd', 'g', 'c']  
  • >>> list.index('c')  
  • 1
  • >>> list.remove('c')  
  • >>> list.index('c')  
  • 9
  • >>> list.count('d')  
  • 2
  • >>> list.sort()  
  • >>> list  
  • ['a', 'b', 'c', 'd', 'd', 'e', 'f', 'g', 'g', 't']  
  • >>> new_list = ['a','c','g','d','b']  
  • >>> new_list.reverse()  
  • >>> new_list  
  • ['b', 'd', 'g', 'c', 'a']

可以使用help(list)获得列表对象的所有方法。

2,元组:

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

举例:Python代码

  • >>> zoo = ('wolf', 'elephant', 'penguin')  
  • >>> print len(zoo)  
  • 3
  • >>> new_zoo = ('monkey', 'dolphin', zoo)  
  • >>> print len(new_zoo)  
  • 3
  • >>> print new_zoo  
  • ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))  
  • >>> print new_zoo[2]  
  • ('wolf', 'elephant', 'penguin')  
  • >>> print new_zoo[2][1]  
  • elephant

从代码中可以看出列表和元组的区别。

3,字典:

字典是一系列未排序的“键值:值”的集合,在同一字典内键值是互不相同的。对字典的主要操作是以某个键值保存一个值,以及给定键值后查找对应的值。也可以用del删除某个键值:值对。如果用一个已有定义的键值保存某个值则原来的植被遗忘。用不存在的键值去查找会出错。

字典不象序列,它不是用在一个范围之内的数字下标来索引,而是用键值 来索引,键值可以是任何不可变类型。字符串和数值总可以作键值。如果元组只包含字符串 、数值或元组,则元组也可以作键值使用,因为元组是不可更改的。列表不能用作键值,因为列表可以用其append()方法就地改变值。

字典对象的keys()方法返回字典中所有键值组成的列表,次序是随机的。需要排序时只要对返回的键值列表使用sort()方法。为了检查某个键值是否在字典中,使用字典的has_key()方法。

字典使用举例:

Python代码

  • >>> employee_id = {'Sammy':1, 'david':2, 'shirley':3,'jack':4,'guido':5}   
  • >>> employee_id['shirley']   
  • 3   
  • >>> employee_id.has_key('fly')   
  • False   
  • >>> employee_id.keys()   
  • ['shirley', 'Sammy', 'guido', 'jack', 'david']   
  • >>> employee_id   
  • {'shirley': 3, 'Sammy': 1, 'guido': 5, 'jack': 4, 'david': 2}   
  • >>> del employee_id['david']   
  • >>> employee_id   
  • {'shirley': 3, 'Sammy': 1, 'guido': 5, 'jack': 4}   
  • >>> for name, id in employee_id.items():   
  • .... print 'employee %s id is %d' % (name, id)   
  • ....   
  • employee shirley id is 3   
  • employee Sammy id is 1   
  • employee guido id is 5   
  • employee jack id is 4   
  • >>> if 'shirley' in employee_id or employee_id.has_key('shirley'):   
  • .... print employee_id.get('shirley')   
  • ....   
  • 3  
http://f.dataguru.cn/thread-42002-1-1.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值