容器概念:
线性表 : 有序的容器结构
数组(array) : 是由连续的内存空间组成
栈(stack) : 先进后出,后进先出
队列(queue) :先进先出,后进后出
链表(list) : 是由不连续的内存空间组了逻辑结构 。单向链表 #内存小,效率低
双向列表 #内存大,效率高
下面将依次介绍python的内置容器
1.list
3.set
2.tuple
4.dict
的概念、使用及遍历方法
Python 的list(列表) 底层的视线就是用的双向链表结构
定义list(列表)
通过弱数据类型语言,直接将值赋值为一个变量
A = [xxxxxx] #给列表A赋值
A = list[xxxxxx] #通过List全局函数创建列表
len(A) #查看列表长度(获取列表A的长度)
A [1] #可以通过下标获取值(下标从0开始),获取列表A的第二个值
列表的常见使用方法:
append() #在尾部追加新的元素
insert(index,元素) #在特定位置(index)位置插入新的元素
clear() #清空列表
remove() #删除元素,没有就会异常
pop(index) #删除特定位置(index)的元素,默认删除最后一个
count() #统计某个元素的在列表里的数量
index() #获取元素在列表中的第一个位置索引,没有就会异常
copy() #浅拷贝对象(后续增加不会继承)
extend() #列表合并
reverse() #反转列表的顺序
sort() #排序列表元素,默认升序,可以借用reverse达成降序
注:全局函数也有reverse,要查看先导入bulitins包,与list中的reverse功能类似。
遍历列表:
方式一:
for i in A:
print(i)
方式二:
Index = 0
While index < len(A):
print(A[index])
index += 1
set的使用:
hash表的实现(哈希、散列表):无序(求余实现)、不重复
A=Set {.....} #定义A为set(弱数据类型)
A=Set{[......]} #set也可以接受列表(list也可以接受set)
这个方法可以用于去重
Set的常见方法:
add() #添加新元素
clear() #清空列表
copy() #浅拷贝对象(后续增加不会继承)
A.Intersection(B) #A与B的交集
A.Union(B) #A与B的并集
difference() #差集
discard() #删除元素,如果没有就什么都不做
remove() #删除元素,没有就会异常
pop() #随机移除元素,为空就异常
注:set无下标,所以只能用for来遍历,后面用dict来演示
元祖(tuple): #是一种不可变的数据类型
season = (‘春’,’夏’) #定义元祖
season[1] #获取’春’(不可变,只能查看)
元祖常见方法:
count() #统计某个元素的在列表里的数量
index() #获取元素在列表中的第一个位置索引,没有就会异常
注:不可变数据若包含了可变对象的话,该部分就可以变
(eg:元祖中的元素是列表)
Dict(字典): #内存结构类似于二维表格
D = {‘name’: ‘小王’,’age’:’18’} #创建字典name 对应小王;age对应18
D[‘name ’] #访问字典(获取到’小王’)
Del D[‘age’] #删除内容
字典常用方法:
clear() #清空列表
copy() #浅拷贝对象(后续增加不会继承)
get() #获取值
keys() #获取所有的键(‘name’就是键)
values() #获取所有的值(一般与keys一起用)
items() #获取所有内容(相当于keys+values)
pop(‘name’) #删除’name’的键值对(通过键来删)
popitem() #以栈的形式删除(后进先删)
字典遍历:
方式一:
for key in 字典对象:
print(key,对象[key])
方式二:
for key in d.keys():
print(key, d.get(key))
方式三: #可以加括号,效果不变
for key ,value in d.items() = = for( key ,value) in d.items()
print(key ,value) print(key ,value)