python入门——4种容器的定义及常用方法

列表容器(list)

列表是一种线性表,由大量的节点组成,每一个节点都可以存储数据是一个可以存储大量数据的容器,列表支持位尾部删除、指定位置删除和值删除,但指定位置的插入和删除要移动很多元素,效率很低
定义

a = list()	   创建一个空列表
b = [1, 2, 4, 5, 7, 10, 99]   创建一个列表(python是弱数据类型语言)

列表的遍历可用循环语句进行

列表的常用方法
  • append 在尾部追加一个元素
>>> b.append(100)			
>>> b
[1, 2, 4, 5, 7, 10, 99, 100]
  • clear 清空容器
>>> b.clear() 				
>>> b
[]
  • copy 浅拷贝
>>> b = [1,2,4,5,7,10,99,10]
>>> a = b.copy()			
>>> a	
[1, 2, 4, 5, 7, 10, 99, 10]
  • count 统计元素在列表中的个数
>>> b.count(10)				
2
  • index 查询元素在列表中第一次出现的位置,若不存在该元素,则会抛出异常
>>> b.index(10)				
5
  • insert 在目标位置插入元素
>>> b.insert(3,100)3位置插入100元素
>>> b
[1, 2, 4, 100, 5, 7, 10, 99, 10]
  • pop 根据下标位置删除元素,没有下表默认删除最后一个
>>> b.pop()					
10
>>> b
[1, 2, 4, 100, 5, 7, 10, 99]
  • remove 移除对应的元素,如果列表中不存在该元素,则抛出异常
>>> b.remove(100)			
>>> b
[1, 2, 4, 5, 7, 10, 99]						
  • reverse 翻转元素的顺序
>>> b.reverse()				
>>> b
[99, 10, 7, 5, 4, 2, 1]
  • sort 列表的排序(主要针对数字)
>>> b.sort()				
>>> b
[1, 2, 4, 5, 7, 10, 99]
  • extend 合并列表
>>> b						
[1, 2, 4, 5, 7, 10, 99]
>>> a = [3,5,7,8,123,456]
>>> a
[3, 5, 7, 8, 123, 456]
>>> b.extend(a)				合并列表,将a的值合并给b
>>> b
[1, 2, 4, 5, 7, 10, 99, 3, 5, 7, 8, 123, 456]

集合容器(set)

集合顾名思义,集合的特点和数学方面要求一样,元素必须唯一,不能重复,没有排序的。
定义

a = set()   空集必须使用全局函数set定义
b = {'nsdbakuihbdaskuidhg'}
集合的常用方法
  • add 添加元素
>>> a.add(100)						添加元素100
>>> a
{100}
>>> b.add(100)
>>> b
{'nsdbakuihbdaskuidhg', 100}
  • clear 清空容器
>>> b.clear()						
>>> b
set()
  • copy 浅拷贝
>>> b = a.copy()					
>>> b
{100}
  • difference 求差集
>>> a.add(10)
>>> a
{10, 100}
>>> b
{100}
>>> a.difference(b)					求ab差集
{10}
  • discard 如果集合中存在该元素,移除元素,如果不存在也不报错
>>> a.add(1000)
>>> a
{1000, 10, 100}
>>> a.discard(10)					
>>> a
{1000, 100}
  • intersection 求交集
>>> a
{1000, 100}
>>> b
{100}
>>> a.intersection(b)				求ab交集
{100}
  • pop 随机移除,若集合为空,则报错
>>> a = {1,2,3,4,5,6,10,100,1000}
>>> a.pop()							
1
>>> a
{2, 3, 4, 5, 6, 100, 1000, 10}
  • remove 移除元素,不存在会报错
>>> a = {1,2,3,4,5,6,10,100,1000}
>>> a.remove(100)					
>>> a
{1, 2, 3, 4, 5, 6, 1000, 10}
  • union 求并集
>>> a
{1, 2, 3, 4, 5, 6, 1000, 10}
>>> b
{100}
>>> a.union(b)						求ab的并集
{1, 2, 3, 4, 5, 6, 100, 1000, 10}

元组容器(tuple)

元组中的值是不可变的,元组本身也是不可变类型,但是元组中的元素是可变类型,那么该元组是可变的。在python中,如果要定义元组时只有一个元素,那么一定要在该元素后面加逗号,否则Python解释器会将该元组当成一个数字对待。
定义

s = tuple((1,2,3,45,5))
ss = (1,2,3,4,3)
元组的常用方法
  • count 统计元素出现的个数
>>> ss.count(3)				统计该元素3出现的个数
2
  • index 查询元素出现的位置
>>> ss.index(4)				查询该元素4出现的位置
3
  • len 计算长度
>>> len(ss)					
5
  • max 元组中的最大数
>>> max(s)					
45
  • min 元组中的最小数
>>> min(s)					
1

字典容器(dict)

字典是非序列式容器,不支持索引、切片,查找效率高,空间占用较大。Python中的字典类型,key必须是字符串!
定义

d = {key1 : value1, key2 : value2 }
sss = {'abc':123 ,'def':456}

访问

d[key] = ?  如果key不存在,则会新增这个键值对
字典的常用方法
  • clear 清空容器
>>> sss.clear()						
>>> sss
{}
  • copy 浅拷贝
>>> sss = {'abc':123,'def':456}
>>> ssr = sss.copy()				
>>> ssr
{'abc': 123, 'def': 456}						
  • fromkeys
>>> seq = ('a','b','c')				定义一个元组
>>> dict = dict.fromkeys(seq)		使用元组seq作为dict的key
>>> dict
{'a': None, 'b': None, 'c': None}
>>> dict = dict.fromkeys(seq,100)
>>> dict
{'a': 100, 'b': 100, 'c': 100}
  • get 通过key获得该key对应的值,如果没有这个key,则返回None
>>> dict.get('a')					
100
>>> sss.get('abc')
123
>>> sss.get('zzz')
>>>
  • items 成对返回键值对
>>> dict.items()					
dict_items([('a', 100), ('b', 100), ('c', 100)])
>>> sss.items()
dict_items([('abc', 123), ('def', 456)])
  • keys 返回字典中所有的key
>>> dict.keys()						
dict_keys(['a', 'b', 'c'])
>>> sss.keys()
dict_keys(['abc', 'def'])
  • pop 通过key删除key所对应的值,若key不存在,则抛出异常
>>> dict.pop('b')					
100
>>> dict
{'a': 100, 'c': 100}
  • popitem 移除一个键值对,按照LIFO(先进后出)原则
>>> dict = {'a': 100, 'b': 100, 'c': 100}
>>> dict.popitem()					
('c', 100)
>>> dict
{'a': 100, 'b': 100}
  • values 返回字典中所有的值
>>> sss.values()					
dict_values([123, 456])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值