python和Java的几种容器比较

Posted 铁头哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python和Java的几种容器比较相关的知识,希望对你有一定的参考价值。

python里面有几种常用的容器用来存放数据

1.list 列表,在python中没有数据类型,所以可以在列表中存放各种类型的数据,比如把Java里面的整型和字符串放在一个容器里面如下所示

1 list = [熊猫, 老虎, 123, 123.000,abc]
2 list
3 [熊猫, 老虎, 123, 123.0, abc]

向列表添加数据

1)append()

1 list.append(456)
2 list
3 [熊猫, 老虎, 123, 123.0, abc, 456]

2)insert(index,Object)向指定位置添加

1 list.insert(2,000)
2 list
3 [熊猫, 老虎, 000, 123, 123.0, abc, 456]

3)extend()

1 list.extend(柿子)
2 list
3 [熊猫, 老虎, 000, 123, 123.0, abc, 456, , ]
4 list.extend([企鹅, 胖虎])
5 list
6 [熊猫, 老虎, 000, 123, 123.0, abc, 456, , , 企鹅, 胖虎]

用extend()方法时添加一个字符串他会将这个字符串拆分成单个字符分别添加进去,添加一个列表相当于把两个列表拼接起来

删除列表的数据

1)remove()

1 list
2 [熊猫, 老虎, 000, 123, 123.0, abc, 456, , , 企鹅, 胖虎]
3 list.remove(000)
4 list
5 [熊猫, 老虎, 123, 123.0, abc, 456, , , 企鹅, 胖虎]

2)del()删除指定数据

1 list
2 [熊猫, 老虎, 123, 123.0, abc, 456, , , 企鹅, 胖虎]
3 del list[1]
4 list
5 [熊猫, 123, 123.0, abc, 456, , , 企鹅, 胖虎]

也可以删除这个列表del list

3)pop()移除最后的元素并返回

1 list
2 [熊猫, 123, 123.0, abc, 456, , , 企鹅, 胖虎]
3 list.pop()
4 胖虎
5 list
6 [熊猫, 123, 123.0, abc, 456, , , 企鹅]

列表的访问直接根据索引进行访问即可,比如访问第一个元素则是list[0],但对于列表里面包含一个列表的,加入访问里面列表的元素则需要通过外面的列表索引层层访问比如

1 list
2 [熊猫, [ok, good], 123, 123.0, abc, 456, , , 企鹅]
3 list[1][0]
4 ok

列表的切片,可以将列表进行切片取出这个列表的一部分

1 list
2 [熊猫, [ok, good], 123, 123.0, abc, 456, , , 企鹅]
3 list[1:3]
4 [[ok, good], 123]
5 list[2:3]
6 [123]
7 list[2:5]
8 [123, 123.0, abc]

可以看出list[index1:index2] ,取出的元素大于等于index1小于index2

2.元组可以看成是一个带了枷锁的列表,他不能被改变

 1 #定义元组
 2 #第一种方式
 3 tuple=1,2,abc
 4 type(tuple)
 5 <class tuple>
 6 #第二种方式
 7 b=(1,2,3,abc)
 8 type(b)
 9 <class tuple>
10 b
11 (1, 2, 3, abc)
12 tuple
13 (1, 2, abc)

可以看出小括号不能作为元组的标志,因为第一种方式定义的时候就没有加小括号但类型还是元组类型的,所以说小括号不能作为元组的标志,元组也可以进行切片拼接

1 tuple
2 (1, 2, abc)
3 tuple[0:1]+(哈哈,456)+tuple[1:]
4 (1, 哈哈, 456, 2, abc)
5 tuple
6 (1, 2, abc)

3.集合相当于Java里面的set,python里面的集合不能有重复的元素

1 set ={1,haolou,haha}
2 type(set)
3 <class set>

可以通过集合的工厂函数set()将列表变成一个集合,这样就可以去除列表里面的重复元素了,然后再通过list()转成列表

1 num = [1,1,2,2,3,3,4,4,4]
2 num
3 [1, 1, 2, 2, 3, 3, 4, 4, 4]
4 set(num)
5 {1, 2, 3, 4}
6 list(set(num))
7 [1, 2, 3, 4]

向集合里添加元素

1 set= {王羲之, 演员, 导演,专家}
2 set
3 {专家, 导演, 王羲之, 演员}
4 set.add(科学家)
5 set
6 {专家, 导演, 科学家, 王羲之, 演员}

 

 删除集合中的元素

1 set.remove(专家)
2 set
3 {导演, 科学家, 王羲之, 演员}

4.字典

python里面的字典相当于Java里面的Map具有映射关系

 1 #三种创建字典的方式
 2 dic = {马云:Alibaba, 马化腾:Tecent,李彦宏:Baidu}
 3 dic
 4 {马化腾: Tecent, 马云: Alibaba, 李彦宏: Baidu}
 5 dic2 =dict(马化腾=QQ, 马云=支付宝, 李彦宏=百度)
 6 dic2
 7 {马化腾: QQ, 马云: 支付宝, 李彦宏: 百度}
 8 dic3= dict(((1,hello),(2,icq),(3,fu),(4,kolo)))
 9 dic3
10 {1: hello, 2: icq, 3: fu, 4: kolo}

 

 

 字典的取值和更新

1 dic2
2 {马化腾: QQ, 马云: 支付宝, 李彦宏: 百度}
3 dic2.get(111)
4 dic2.get(马化腾)
5 QQ
6 dic2.update({马化腾:tecent})
7 dic2
8 {马化腾: tecent, 马云: 支付宝, 李彦宏: 百度}

 

 fromkeys可以为字典的键赋多个相同的值

1 dic2.fromkeys((马化腾, 马云), 大佬)
2 {马化腾: 大佬, 马云: 大佬}

以上是关于python和Java的几种容器比较的主要内容,如果未能解决你的问题,请参考以下文章

提升Python编程效率的几种方法

web容器启动后自动执行程序的几种方式比较

java解析xml的几种方式哪种最好?

Java8字符串分割的几种方式及性能比较

java Web 启动时自动执行代码的几种方式

你必须知道的几种java容器(集合类)