什么是容器
线性表:有序的容器结构
数组(array):有连续的内存空间组成
链表(list):不连续的内存空间组成了逻辑结构
栈(stack):先进后出(FILO),后进先出(LIFO)
队列(queue):先进先出,后进后出
python中的list(列表):
底层的实现就是使用双向链表结构实现的!
定义list:
双向链表 有序,可变, 可操作: 插入(append,insert, extend),删除(remove, pop,任何位置),
通过弱数据类型语言的特点,直接将值赋值为一个变量
方法1. users = ['刘建宏', '刘帅哥', , '吴帅哥']
方法2. users2 = list( ["周杰伦“,100,6.666] )
使用列表元素的方法:
通过下标获取某个元素值
注意:下标是从零开始
u2[3] # 获取第四个u2中的值
获取列表长度:
len(链表名) #全局函数
列表的遍历:
方法一:利用for循环遍历列表
number = [1,100,50]
for i in number:
print(i)
方法二:利用while循环遍历列表
number = [50,100,66,10]
index = 0
while (index <= len(number)):
print(user[index])
index += 1
列表的常见方法:
append(新元素) # 在尾部追加新的元素
insert(index, 新元素) # 在特定的位置插入新元素
clear() # 清空列表
remove(元素) # 通过元素本身删除元素,如果该元素不存在,则会提示抛出异常
pop(将要删除元素的相应下标) # 可以通过位置删除元素,默认删除最后一个
count(元素) # 统计元素在列表中出现的次数
index(元素) # 获取元素在列表中的第一个位置索引,如果没有该元素,则抛出异常
copy(无参数) # 浅拷贝对象
extend(目标列表) # 列表合并
reverse() # 翻转列表元素顺序
sort() # 排序列表元素(注意如果字符串与数字在同一列表中不能进行排序)
set(集合):
set的使用:
Hash表实现(哈希、散列表):无序、不能重复,存储一维无序对象
set的创建方式:
s = {元素1,元素2,……}
#注意:如果创建s为set时没有初始化集合的值,则s不是set(集合类型)而是dict(字典)类型!!
#如下:
s = {}
type(s)
<class 'dict'>
set是无序的不存在下标索引!!!
常见方法:
add(新元素) # 添加新的元素
clear(无) #清空集合
copy(无) #浅拷贝集合
difference(目标集合) # 差集
intersection(目标集合) # 交集
union(目标集合) # 并集
discard(目标元素) # 通过元素本身删除元素,若该元素不存在则什么都不做(不报错)
remove(元素) # 通过元素本身删除元素,如果该元素不存在,则抛出异常
pop() # 随机移除元素
元组(tuple):
元组是一种不可变的数据类型(相当于C++中定义了一组宏常量),内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
元组是不允许更新的,而列表是允许更新的
定义元组:
t = (元素1,元素2,……)
常见方法:
count(目标元素) #统计目标元素在元组中的个数
index(目标元素) #找出目标元素(第一个)的索引下标
特别注意:
1.注意:不可变数据,如果包含了可变对象,该部分是可以变化的,如:
t = (1,2,2,43,45,[1,3,4,54])
t[5].append(1203) #相当于在元组中的列表又增加了一个1203元素!
2.Python中
二者区别在于如若定义的元组中只有一个元素时,要在该元素后面加一个逗号
否则python默认定义该数据类型为int而非元组!
dict(字典):
dict的定义:
key---value键值对
dict的创建:
方法一: d = {"name":"相应的值”,“age”:“相应的年龄”,……}
方法二: d2 = dict( {"name":"相应的值”,“age”:“相应的年龄”,……} )
键值对的元素访问:
d = {"name":"wh","age":19} #创建字典
d.keys() #访问所有关键词
d.values() #访问所有值
d.items() #访问所有键值对
常见方法:
d[key] = value #插入(修改)
clear(无) #清空键值对
copy(无) #浅拷贝键值对
keys(无) #访问所有关键词
values(无) #访问所有值
items(无) #访问所有键值对
get(关键词) #通过关键词访问对应值
pop(key) # 通过键删除键值对
popitem() # 删除位于最后一项的键值对
for key in 字典对象:
print(key, 对象[key])
for key in d:
print(key, d[key]
for key in d.keys():
print(key, d.get(key))
for key, value in d.items():
print(key, value)
for (key, value) in d.items():
print(key, value)
for item in d.items():
print(item[0], item[1])