python和Java的几种容器比较
python里面有几种常用的容器用来存放数据
1.list 列表,在python中没有数据类型,所以可以在列表中存放各种类型的数据,比如把Java里面的整型和字符串放在一个容器里面如下所示
list = ['熊猫', '老虎', 123, 123.000,'abc']
list
['熊猫', '老虎', 123, 123.0, 'abc']
向列表添加数据
1)append()
list.append('')
list
['熊猫', '老虎', 123, 123.0, 'abc', '']
2)insert(index,Object)向指定位置添加
list.insert(2,'')
list
['熊猫', '老虎', '', 123, 123.0, 'abc', '']
3)extend()
list.extend('柿子')
list
['熊猫', '老虎', '', 123, 123.0, 'abc', '', '柿', '子']
list.extend(['企鹅', '胖虎'])
list
['熊猫', '老虎', '', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
用extend()方法时添加一个字符串他会将这个字符串拆分成单个字符分别添加进去,添加一个列表相当于把两个列表拼接起来
删除列表的数据
1)remove()
list
['熊猫', '老虎', '', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
list.remove('')
list
['熊猫', '老虎', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
2)del()删除指定数据
list
['熊猫', '老虎', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
del list[1]
list
['熊猫', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
也可以删除这个列表del list
3)pop()移除最后的元素并返回
list
['熊猫', 123, 123.0, 'abc', '', '柿', '子', '企鹅', '胖虎']
list.pop()
'胖虎'
list
['熊猫', 123, 123.0, 'abc', '', '柿', '子', '企鹅']
列表的访问直接根据索引进行访问即可,比如访问第一个元素则是list[0],但对于列表里面包含一个列表的,加入访问里面列表的元素则需要通过外面的列表索引层层访问比如
list
['熊猫', ['ok', 'good'], 123, 123.0, 'abc', '', '柿', '子', '企鹅']
list[1][0]
'ok'
列表的切片,可以将列表进行切片取出这个列表的一部分
list
['熊猫', ['ok', 'good'], 123, 123.0, 'abc', '', '柿', '子', '企鹅']
list[1:3]
[['ok', 'good'], 123]
list[2:3]
[123]
list[2:5]
[123, 123.0, 'abc']
可以看出list[index1:index2] ,取出的元素大于等于index1小于index2
2.元组可以看成是一个带了枷锁的列表,他不能被改变
#定义元组
#第一种方式
tuple=1,2,'abc'
type(tuple)
<class 'tuple'>
#第二种方式
b=(1,2,3,'abc')
type(b)
<class 'tuple'>
b
(1, 2, 3, 'abc')
tuple
(1, 2, 'abc')
可以看出小括号不能作为元组的标志,因为第一种方式定义的时候就没有加小括号但类型还是元组类型的,所以说小括号不能作为元组的标志,元组也可以进行切片拼接
tuple
(1, 2, 'abc')
tuple[0:1]+('哈哈','')+tuple[1:]
(1, '哈哈', '', 2, 'abc')
tuple
(1, 2, 'abc')
3.集合相当于Java里面的set,python里面的集合不能有重复的元素
set ={1,'haolou','haha'}
type(set)
<class 'set'>
可以通过集合的工厂函数set()将列表变成一个集合,这样就可以去除列表里面的重复元素了,然后再通过list()转成列表
num = [1,1,2,2,3,3,4,4,4]
num
[1, 1, 2, 2, 3, 3, 4, 4, 4]
set(num)
{1, 2, 3, 4}
list(set(num))
[1, 2, 3, 4]
向集合里添加元素
set= {'王羲之', '演员', '导演','专家'}
set
{'专家', '导演', '王羲之', '演员'}
set.add('科学家')
set
{'专家', '导演', '科学家', '王羲之', '演员'}
删除集合中的元素
set.remove('专家')
set
{'导演', '科学家', '王羲之', '演员'}
4.字典
python里面的字典相当于Java里面的Map具有映射关系
#三种创建字典的方式
dic = {'马云':'Alibaba', '马化腾':'Tecent','李彦宏':'Baidu'}
dic
{'马化腾': 'Tecent', '马云': 'Alibaba', '李彦宏': 'Baidu'}
dic2 =dict(马化腾='QQ', 马云='支付宝', 李彦宏='百度')
dic2
{'马化腾': 'QQ', '马云': '支付宝', '李彦宏': '百度'}
dic3= dict(((1,'hello'),(2,'icq'),(3,'fu'),(4,'kolo')))
dic3
{1: 'hello', 2: 'icq', 3: 'fu', 4: 'kolo'}
字典的取值和更新
dic2
{'马化腾': 'QQ', '马云': '支付宝', '李彦宏': '百度'}
dic2.get('')
dic2.get('马化腾')
'QQ'
dic2.update({'马化腾':'tecent'})
dic2
{'马化腾': 'tecent', '马云': '支付宝', '李彦宏': '百度'}
fromkeys可以为字典的键赋多个相同的值
dic2.fromkeys(('马化腾', '马云'), '大佬')
{'马化腾': '大佬', '马云': '大佬'}
python和Java的几种容器比较的更多相关文章
- [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能
[翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能 原文: Comparing AWS Lambda performance of Node.js, ...
- Python下载网页的几种方法
get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...
- Java Servlet与Web容器之间的关系
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...
- Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用
目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要 ...
- Java中几种日志方案
.本文记录Java中几种常用的日志解决方案 0x01 Log4j .这应该是一个比较老牌的日志方案了,配置也比较简单,步骤如下 1)添加对应依赖,比如 Gradle 中 dependencies { ...
- 从追MM谈Java的23种设计模式(转)
从追MM谈Java的23种设计模式 这个是从某个文章转载过来的.但是忘了原文链接.如果知道的,我追加一下. 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西 ...
- 从追MM谈Java的23种设计模式
从追MM谈Java的23种设计模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯 德基,只管向服务员说“来四个鸡 ...
- Java的三种代理模式
Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...
- MongoDB的账户与权限管理及在Python与Java中的登陆
本文主要介绍了MongoDB的账户新建,权限管理(简单的),以及在Python,Java和默认客户端中的登陆. 默认的MongoDB是没有账户权限管理的,也就是说,不需要密码即可登陆,即可拥有读写的权 ...
随机推荐
- 从零开始制作 Hexo 主题
原文地址:从零开始制作 Hexo 主题 · Ahonn 写在前面 本文将会从零开始开发一个简单的博客主题.样式主要参考 Hexo theme 中的 Noise 主题. 开始之前你需要了解: 模板引擎 ...
- Azure按订阅,资源组,资源类型导出所有资源powershell命令
一般可以借助powershell命令来读取资源:例如:1, 读取某个订阅下的资源:$subscriptionID = "xxxxxxxx"Set-AzureRmContext $s ...
- WEB框架-Django框架学习(二)- 模型层
今日份整理为模型层 1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库, ...
- 基于Linux下catalog方式的 Oracle 备份策略(RMAN)
--********************************** -- 基于Linux下 Oracle 备份策略(RMAN) --******************************* ...
- centos 网卡状态
由于ifconfig命令没法看到网卡的一些状态, 以下有5种方法查看网卡状态,是否连通网线 1)# dmesg | grep eth.....e1000: eth0 NIC Link is Up 10 ...
- 专业的web打印插件
Lodop是什么?参考官方网站:http://www.lodop.net/ 有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程 ...
- WordPress慢的八种解决方法(用排查法解决)
WordPress的打开速度慢会影响到用户体验和关键词的稳定排名,WordPress为什么加载慢呢?其实很简单的,就是WordPress水土不服,用WordPress的大家都知道,WordPress是 ...
- java篇 之 类型转化
类型转换时,如果最初的数值类型是有符号的,那么就执行符号扩展:如果它是char,那么不管将要被转换成什么类型,都执行零扩展 代码执行顺序是从上至下,从右至左 强制转换: Int a =(int)(sh ...
- JSP/JSF从web.xml中取出context-param的配置信息
JSP/JSF从web.xml中取出context-param的配置信息. 应用场景:我们配置了项目的版本信息,想让他显示在页面上,如: <context-param><!-- ## ...
- Python中布尔值是False的所有值
在python中以下都是False:为0的,空集合,空字符串,空值None >>> bool(0) False >>> bool(-0) False >> ...