容器类一度活跃在各大编程语言当中,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】容器类相关推荐

  1. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...

  2. Django 2.1.3 文档-模板-内置标签和过滤器(tagfilter)

    内置标签和过滤器 1.内置标签 一览 autoescape block comment csrf_token cycle debug extends filter(标签filter而不是过滤器filt ...

  3. python储存数据的容器_Python基础四容器类数据

    一.上周内容回顾 int bool str 之间的互相转换 int  str: str(int) int(str)  #字符串必须是数字组成 int bool: bool(int): 非零即True ...

  4. Python中Collections模块的Counter容器类使用教程

    Python中Collections模块的Counter容器类使用教程 1.collections模块 collections模块自Python2.4版本开始被引入,包含了dict,set,list, ...

  5. 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  6. 第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  7. Python核心:5. 容器类型和6.函数function

    5. 容器类型 5.1 通用操作 5.1.1 数学运算符 运算符 说明 + 用于拼接两个容器 += 用原容器与右侧容器拼接,并重新绑定变量 * 重复生成容器元素 *= 用原容器生成重复元素, 并重新绑 ...

  8. 【Leetcode】 刷题之路1(python)

    leetcode 刷题之路1(python) 看到有大佬总结了一些相关题目,想着先刷一类. 1.两数之和 15.三数之和 16.最接近的三数之和 11.盛最多的水 18.四数之和 454.四数相加II ...

  9. java并发编程——并发容器类介绍

    2019独角兽企业重金招聘Python工程师标准>>> 并发容器的简单介绍 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为同步 ...

最新文章

  1. oracle有text字段吗,Oracle Text简介
  2. 如果你要实现IOC,请简单描述一下实现步骤?
  3. php file_put_contents(quot;,php file_put_contents函数怎么用?
  4. opencart卸载语言包要记得在后台进行设置否则会出错
  5. Android之Intent传递数据
  6. Nand flash驱动的编写与移植
  7. SHA-256 加密原理
  8. 38.线程交换与线程移动
  9. 32利用文件系统保存数据_数据管理技术的产生与发展
  10. 中兴b860a拆机_【中兴ZXV10B860A魔盒外观展示】接口|线材|插线_摘要频道_什么值得买...
  11. 亚马逊卖家运营必备八大工具
  12. 概念模型转化为逻辑模型规律
  13. 微信拉群服务器忙请稍后再试,在微信拉群时,出现“未能添加新成员,请稍后再试”是怎么回事?...
  14. WPF真入门教程21--WPF资源系统
  15. Codeforces Round #703 (Div. 2)C1C2 Guessing the Greatest(二分)
  16. 【好东西一定要转】关于Solaris安全配置的转贴和讨论
  17. can和could的用法_can和could的用法
  18. 阿里巴巴与雅虎的关系
  19. Oracle 查锁 和杀锁
  20. centos mysql gz恢复_Linux下mysql备份 恢复

热门文章

  1. JavaScript 正则表达式控制文本框输入<GrootBaby>
  2. 「九省联考 2018」一双木棋
  3. FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD
  4. 双链笔记软件评测:Roam Research、 Obsidian、Logseq 思源笔记
  5. 判断数组对象属性值是否相等
  6. 记一次docker虚拟机横向移动渗透测试
  7. Sqlite源码解读(十二)
  8. 地壳中元素含量排名记忆口诀_地壳中含量最多的八种元素,重温高中化学知识...
  9. PHPstudy配置多个域名
  10. biome-BGC模型小白求助