list列表
List是python的一个内置对象
(1) List的特点:
1) list列表是有序的,指的是添加顺序和存储顺序是一致的,即先进先出,后进后出
2) list列表内的元素是可以重复的
3) list列表添加和删除的速度比较慢
4) list列表的查询速度比较快
5) list列表的第一个元素的索引是从0开始的
6) list列表的最后一个元素的索引是:列表的长度-1
7) list列表支持负数索引(-1指的就是list列表的最后一个元素),但是一般情况下我们不建议使用
(2) 列表的声明语法
列表名 = [元素,元素,.....,元素n]
列表可以存储任何数据类型的数据.一般情况下,一个列表中的数据类型尽量统一,这样是为了方便操作数据
(3) list常用的方法
1) 添加
list.append(value) # 将值添加到列表的尾部
list.insert(index,value) # 将值添加到index指定的位置
list.extend(list2) #将list2列表扩展到list列表的尾部
2) 修改
list[index] = [value] # 修改index处的值
3) 查询
value = list[index] #查询index出的值
index = list.index(value) # 获取指定值的index值
count = list.count(value) #获取指定值出现的次数
length = len(list) # 获取list列表的长度
max = max(list) # 获取list列表中的最大值
min = min(list) #获取list列表中的最小值
4) 删除
value = list.pop() # 删除list列表中的最后一个数值,并将删除的值返回
value = list.pop(index) # 删除list列表中的index处的值,并将删除的值返回
del list[index] # 删除list列表中的index处的值,并不会返回值
list.remove(value) # 清空list列表
(4) list常见的操作
1)in 判断列表中是否包含指定的元素,包含返回True
2)not in 判断列表中是否不包含指定的元素,不包含返回False
3)+ 表示组合
4)表示重复
5)list.reverse() 表示反转列表内的元素
6)list.sort() 表示对列表内的元素进行排列,默认是升序
list.sort(reverse = True) 降序排列
7)list的切片操作
list = list[num1:num2:num3]
num1表示切片的起始位置
num2表示切片的最终位置
num3 表示切片的间隔
List = [: :] 默认切片的起始位置是0,到末尾结束,切片间隔是1,如果间隔是负号,则表示从尾部开始,到0结束.
(5) list的遍历操作
1) 利用while循环,根据索引
2) for…in…
For 变量 in 序列:
输出序列中的元素
3) for…in range()
For 变量 in range(len(序列)):
输出
4) for …,… in enumeration
For x,y in enumeration(序列):
输出:x表示索引,y表示元素
tuple元组
(1) 元组的特点
元组是不可变类型(不能被添加,删除,修改),元组使用小括号.元组的索引也是从0开始的,最后一个元素索引也是:元组的长度-1.
(2) 元组的声明语法
元组名 = (元素,元素,.....,元素n)
(若元组中只有一个元素,必须在元素后面加逗号).
比如:tup =(12,)
(3) 元组的操作
1) len() 获取元组的长度
2) in 判断元组中是否包含指定的元素
3) not in判断元组中是否不包含指定的元素
4) del tuple 删除整个元组
(元组内的元素不能一个一个删除,只能一起删除)
(4) 元组的遍历跟列表的遍历一样
dict字典
(1) 字典的由来
Python中为我们内置了一个对象,dict字典(在其他语言中称为Map),字典是以键值的形式存储信息,字典的语法:
字典名={键:值,键:值.....键:值}
(2) 字典的特点
1) 字典是可变类型
2) 字典中的键必须是不可变类型中的可变类型
3) 一般情况下,键统一采用字符串类型
4) 值可以是任意类型
5) 字典值可以重复
6) 字典是无序的,指的是添加元素和取出元素的顺序是不一致的
7) 字典必须保证键的唯一性
8) 字典键重复,值覆盖
9) 字典一个键,最多只能映射一个值
10) 字典也称为双列集合
11) 字典要根据键去找值,不要根据值去找键
(3) 字典常用的方法
1) 添加/修改
# 根据键去找对应的值修改;如果没有此键,则会创建一个新键.
dict[key] = value
2) 删除
dict.pop(key) # 根据键去删除值,并将值返回
del dict(key) # 根据键去删除值,没有返回值
dict.popitem() # 随机删除一个
dict.clear() # 清空字典 结束为:{}
3) 查看
value = dict[key] # 根据键去找值
value = dict.get(key) # 根据键去找值
len(dict) # 求字典的长度
str(dict) # 将字典转化为字符串
dict.keys() # 查看字典所有的键
dict.values() # 查看字典所有的值
dict.items() # 查看字典中所有的键值对
4) 遍历
# 先获取所有的键,再根据键获取值
key = dict.keys()
for key1 in key:
value = dict.get(key1)
# 直接获取键值对
v = dict.items()
for key,value in v:
print(key,value)
5) 其他操作
dict.copy() # 返回一个新的字典,内容一样,地址不同
dict.fromkeys(seq[, val])) # 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
# 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default;如果键在字典中,返回这个键所对应的值。
# 如果键不在字典中,向字典中插入这个键,并且以default为这个键的值,并返回 default,default的默认值为None
dict.setdefault(key, default=None)
dict.update(dict2) # 把字典dict2的键/值对更新到dict里
(4)dict特点
查找速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
set集合
(1) set集合的特点
1) set是可变的
2) set是无序的,指的是添加元素和取出元素的顺序是不一致的
3) set中是不允许元素重复的,set可以过滤元素
(2) set的语法
setname = {值,值,....值}
(3) set的常见操作
1) 添加
set.add(value) # 将一个新值添加到集合尾部
set.updata(set2) # 将set2集合连接到set集合的尾部
2) 删除
set.remove(value) # 移除指定的值,如果移除的值不存在,会报错
set.discard(value) # 移除知道的值,如果移除的值不存在,不会报错
set.pop() # 随机删除一个元素
set.clear() # 移除集合中所有元素
(4) set的其他操作
‘|’ # 并集
‘&’ and ‘intersection’ # 交集
‘-’ and ‘ different’ # 差集
in # 判断
union # 联合
issbset # 子集
issuperset # 父集