序列: 列表(list) 元祖(tuple) 字典(dict) 集合(set)
列表
什么事列表? 简单来说就是有序的 可变的 可包含任意对象的集合
属于可变序列
可包含任意类型对象
通过下标访问元素 (从0开始)
长度可变 任意嵌套
列表的使用
列表的定义 "[ ]"
通过下标获取
list=[1,2,3,4,5,"asdf"]
例 : print(list[2])
例 : print(list[:3])
例 : print(list[3:])
例 : print(list[-2::2])
list.append()在列表的末尾添加一个元素
list[下标]=值 修改某一个元素的值
嵌套
例 : list1=[1,2,3,["as","as",55],"a8",99]
遍历列表中的元素
list1=[1,2,3,["a","as","a8",99]
1.
for i in range(0,len(list1)):
print(list1[i])
2.
for j in list1:
print(j)
3.
list1=[[1,2,3],['w','e','r']]
for k in list1:
print(k)
for item in k:
print(item)
list1=[[1,2,3],456,['w','e','r']]
for k in list1:
print(k)
if isinstance(k,list):
for item in k:
print(item)
else:
print(k)
列表排序
list1=[34,5,2,63,35]
list1.sort() #从小到大进行排序,改变的是本身
print(list)
sorted() #函数
#列表元素是字母的话按照首字母进行排序,如果首字母相同则按下一位字母排序
list1.surt() #按照最后一个字母进行排序
倒置列表
list1.sort(reverse=True) #先排序
print(list1)
list1.reverse()
print(list1)
list() #函数
print("123456") #字符串转为列表
t=(‘sd’,'sdsss',46)
print(list(t)) #元祖转为列表
判断一个元素是否在序列之内
print("元素" in list1) #在列表内输出True 否则输出False
连接序列
print(list1+list2)
list3=list1+list2
重复序列元素
print([5,4]*4)
步长
print (list1[::2])
print(max(list1)) 列表最大值
print(min(list1)) 列表最小值
判断一个元素在序列中的位置
print(list1.index(元素值))
统计某个元素在序列中出现的次数
print(list1.count(元素值))
删除
del list[0] 根据下标删除元素
.remove() 根据元素的值删除元素,如果元素重复则删除第一个元素
.clear() 清空序列
.pop() 检索病删除特定元素 默认从最后一个删除
添加
.append() 添加到元素的末尾
.extend() 拓展列表
.insert() 插入元素
复制序列
直接赋值会出现共享引用 改其中一个序列的值另一个序列也会改变
.copy()
列表名[:]
例:list2=list1.copy()
例:list3=list1[:]
list=list2 # 共享引用
“”.join() 将列表转为字符串
list_1 = list(str)
元祖
:元祖是不可变的
:可包含任意对象的集合
:通过下标访问对象
:不支持原位改变
:元祖内如果只有一个元素的话必须在元素后加一个逗号“,” 否则会默认为字符串
:不可修改删除
元祖的定义
例:db_info=("ip","admin","password")
访问元祖
例:db_info[0]
db_info[0:2]
遍历元祖跟列表一样
sorted() 排序后会返回一个新的元祖,本来的元祖不会发生改变
例:
a=(4,5,6,"aa")
new_db=sorted(a)
#
#
字典
:是无序的 可变的
:可包含任意对象的键值对(key:value)
:长度可变 任意类型 嵌套
:通过键取值
:键不能重复 键名重复后边的键值会把前边的键值覆盖掉
字典的定义
例:
dict_info1={} # 创建一个空的字典
dict_info={1:"name1",2:"nam2",3:"name3"}
字典修改
例:
dict_info[1]="erpan"
查询 通过键取值
例:
print(dict_info[2])
添加键值对
例:
dict_info["age"]="23"
删除键值对 通过键删除
例:
del dict_info["age"]
.keys() 方法 获取字典中说有的键
.valuea() 方法 获取字典中所有的值
.items() 方法 获取字典中所有的键值对
.clear() 清空字典
取字典中单个key
例:
dict_info={1:"name1",2:"nam2",3:"name3"}
key1,key2,key3=dict_info
print(key1)
print(key2)
通过键值取对应的key
例:
dict={1:"name1",2:"name2",3:"name3"}
key_list=list(dict.keys()) #将字典所有key转化为列表
value_list=list(dict.values()) #将字典中所有键值转化为列表
#字典中所有的key和键值都是对应的
re=key_list[value_list.index("name1")] # 获取key列表的下标 通过key下标获取键值列表的键值
print(re)
集合 注:集合不允许有重复的对象(自动去重)
无序的 可变的
包含任意类型
任意长度 嵌套
支持原位改变
定义
例:
set_info={"hell","lala","hehe"}
print(set_info) # 不按照原来的顺序随机顺序输出
er=set("hellow") # 对字符串去重
print(er)
set_null=set() #创建一个空的集合
.add 添加
例:
set_info.add()
.update 更新 将序列内的元素添加到集合中
例:
set_info.update(序列)
.remove()和.discard() 删除
例:
注:.remove删除一个不存在的值会报错
set_info.remove()
注:.discard删除一个不存在的值不会报错
set_info.discard()
.pop() 随机删除集合中的某个元素并返回该元素的值
例:
result=set_info()
print(result)
交集、并集、差集、对称差集
交集
现有两个集合 set1 set2
两种方式:
result1=set1 & set2
result2=set1.intersection(set2)
并集
两种方式:
result1=set1 | set2
result2=set1.union(set2)
差集
意思是输出那些不是共有的
#set里边有set2里边没有的
result1=set1 - set2
result2=set1.difference(set2)
对称差集
意思是去掉两个集合都存在的元素然后合并
result1=set1 ^ set2
result2=set1.union(set2)