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(('马化腾', '马云'), '大佬')
{'马化腾': '大佬', '马云': '大佬'}
上一篇:java算法(二)


下一篇:C++ 常见容器