首页 > 编程语言 > 详细

【Python】容器类

时间:2015-07-15 22:54:20      阅读:391      评论:0      收藏:0      [点我收藏+]

容器类一度活跃在各大编程语言当中,Python中同样存在容器,同时不像Java中这么复杂,仅保留两个,主要是其列表类,也就是可变长数组,相当于Java中的ArrayList,还有一个集合,里面的元素无序,不允许重复,相当于Java中的HashSet。同时还是有一个字典,就是JavaScript中鼎鼎大名的Json数组,也就是Java中的HashMap。Java中的容器类在《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接)中已经说过了,下面以两个小程序,说明Python中的容器类。


一、列表、集合

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

下面这个程序说明了Python中列表的运用,最后还用到早在Java中用过的《【Java】为ArrayList去重》(点击打开链接)方法为这个arraylist去重。先把列表转化为集合,再把集合转化为列表。在Python中这里还没有Java这么复杂,因为任何变量的声明都不用写变量名。集合就是数学上的集合,无序、互异、确定。

#-*-coding:utf-8-*-
#列表、集合
arraylist=[1,12,3,4,5,9,7,9,9];#定义一个数组、同时也是容器
print "现在的arraylist为:"+str(arraylist);
print "arraylist中9的个数为:"+str(arraylist.count(9));
print "1在arraylist的:"+str(arraylist.index(1))+"位置";
arraylist.insert(0, 100);
print "在arraylist的第0个位置插入100的arraylist为:"+str(arraylist);
for i in range(0,len(arraylist)):
    print arraylist[i],
print;
arraylist.sort();
print "排序后的arraylist为:"+str(arraylist);
arraylist.reverse();
print "倒置后的arraylist为:"+str(arraylist);
arraylist=set(arraylist);
arraylist=list(arraylist);
print "去重后的arraylist为:"+str(arraylist);
运行结果如下:

技术分享

里面所用的列表方法总结如下:

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在列表中出现的次数。


二、字典

先把程序摆上,大家见到后,如果你知道Json是什么,那就肯定知道Python中的字典是什么。只是换了个名字而已。

#-*-coding:utf-8-*-
#字典
print ;
hashmap={'a':1, 'b':2, 'c':3,'d':4,'e':5};
print "hashmap中的key为c的元素对应的value为:"+str(hashmap['c']);
hashmap['f']=6;
hashmap.pop('b');
print "hashmap中添加f-6删除b-2之后的值为:"+str(hashmap);
其运行结果如下:

技术分享

Python中的字典就是Json,其声明是完全一样的。其实也就是Java中的HashKey一大堆key-value对的集合,以key找value。

字典是一系列未排序的“键值:值”的集合,在同一字典内键值是互不相同的。对字典的主要操作是以某个键值保存一个值,以及给定键值后查找对应的值。也可以用del删除某个键值:值对。如果用一个已有定义的键值保存某个值则原来的植被遗忘。用不存在的键值去查找会出错。
字典不象序列,它不是用在一个范围之内的数字下标来索引,而是用键值 来索引,键值可以是任何不可变类型。字符串和数值总可以作键值。如果元组只包含字符串 、数值或元组,则元组也可以作键值使用,因为元组是不可更改的。列表不能用作键值,因为列表可以用其append()方法就地改变值。
字典对象的keys()方法返回字典中所有键值组成的列表,次序是随机的。需要排序时只要对返回的键值列表使用sort()方法。为了检查某个键值是否在字典中,使用字典的has_key()方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Python】容器类

原文:http://blog.csdn.net/yongh701/article/details/46897659

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!