【Python】容器类

容器类一度活跃在各大编程语言当中,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()方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值