python数据结构:
1.列表 相当于一个容器,里边可以存放多个数据(可以不同类型),一次可以处理多个数据,变量只能存放一个数据,一次只能存放一个数据
list[]
在列表中存值(添加数据):
list.append() 在列表的末尾一次性添加一个数据 list.append([]) 添加列表相当与一个数据
list.extend() 在里边的末尾一次性添加多个数据,以列表形式添加 list.extend([])
list.insert(插入位置,插入数据) 在指定位置添加一条数据,其余数据后移,不会覆盖原数据
列表的运算:
+拼接
*重复
列表的判断:
in:判断某一个元素在不在列表中 在 True 不在 False
not in:判断某一个元素在不在列表中 在True 不在False
在列表中删除数据:
list.remove(删除指定的元素) 要是没有指定要删除的元素,则报错
list.pop(删除指定下标的元素) 如果括号内不写则默认删除列表最后一个元素
list.clear() 清空列表
查找元素:
len() 查长度
index() 根据元素查下标,要是没有则报错
count()查找元素出现的个数
截取(切片):
用法和字符串截取一样
排序:
list.sort[] 升序 从小到大
list.reverse[] 倒序 想降序必须先sort
复制:
在程序当中运行内存一般包括两块内容
栈: 整数,小数,布尔存栈
堆:字符串,列表等等全在堆存储
变量存栈,值存堆
=复制的是地址值,一个改变会影响另一个(浅拷贝)
list.copy() 复制的数据,不会影响(深拷贝)
列表的特点:
1.列表单词是list[]
2.列表是可变的
3.列表中可以存储不同类型的数据
4.列表有下标
列表的遍历: 一个一个获取
while 循环变量是下标
for 循环变量是列表中的元素
age_list=[1,2,3,4,5,6,7,8,9] #创建一个叫age_list的列表
print(len(age_list))#查看列表中有多少个元素,获取列表长度
print(age_list[3])#获取所填下标的元素(数据)
#添加
i=0 #下标变量
sum=0 #求和变量
while i<=len(age_list)-1:
sum += age_list[i]
i+=1
print(sum)
print(max(age_list))
list=[1,2,3]
list.append(10)
list.append([10,20])
list.extend([30,40])
list.insert(1,2000)
print(list)
小练习:从键盘录入成绩,输入负数结束。
list1=[]
sum=0
while True:
age=int(input('请输入年龄:'))
if age<0:
print('输入错误,程序结束')
break
else:
list1.append(age)
sum+=age
print('最大值:',max(list1))
print(sum)
print(list1)
#删除
list2=[1,2,3,4,5,'a','b']
list2.remove('a')
print(list2)
list2.pop(2)
print(list2)
list2.pop()
print(list2)
list2.clear()
print(list2)
#复制 复制这有一个考点 注意看代码和运行结果 上边基础知识我大概讲了一下
list3=[1,2,3]
list4=list3
list4[0]=200
print(list4)
print(list3)
list4=list3.copy()
list4[0]=10
print(list4)
print(list3)
遍历
list5=['a','b','c','d','e']
i=0
while i<len(list5):
print(list5[i],end=' ')
i+=1
print()
此处的i为下标
for i in list5:
print(i,end=' ')
此处的i为列表中的元素
2.元组
1.元组的单词是tuple 标志是()
2.元组一旦创建不可更改
3.元组操作:截取 查找(长度,下标,次数)拼接+ 重复* 复制
4.元素特点:因为不能修改,所以比较安全
5.元组和列表可以互相转换
6.元素是有序的
#创建一个元组
tuple1=()
print(type(tuple1))
#创建一个有多个数据的元组
tuple2=(1,2,3,4)
print(tuple2)
#创建一个数据的元组
tuple3=(1,) #此处的逗号必须加上,不写则为整数类型
print(tuple3)
#截取(切片)
print(tuple2[1:])
tuple4=(1,2,"a","b")
print(tuple4.index(2))
print(tuple4.count("a"))
#拼接
tuple5=("c","d")
tuple6=tuple4+tuple5
print(tuple6)
#复制 因为元组内容不能修改,所以没有列表中复制那个考点
tuple7=tuple5
print(tuple7)
#转换
tuple8=("a","b","c")
list1=list(tuple8)
list1[0]="aa"
print(list1)
print(tuple8)
tuple9=tuple(list1)
print(tuple9)
3.字典:是一个键值对形式的数据结构
字典是没有下标的
字典是无序的
字典的键是唯一的
字典dict 标志是{}
添加数据 dict['键']=值 dict.updata({'键':值})
删除数据 dict.pop('键') 只能根据键进行删除 括号内不写报错
print(dic.get('键')) 字典中有对应的值时 输出,否则输出None
字典的遍历:
不能用whlie遍历 因为没有下标
只能用for遍历
# 创建字典
dic={"张三":100,"李四":0,"asd":1,"abc":2}
print(dic["张三"])
print(dic)
# 在字典中添加值
dic["王五"]=90
dic.update({"aaa":30})
# 根据键去删除
dic.pop("李四")
# dic.pop() 因为字典是无序的,到底谁是最后一个不知道,会报错
print(dic)
print("----------------")
# 报错
# print(dic["张三1"])
# None空值 不报错
print(dic.get("张三1"))
#遍历键
for i in dic:
print(i)
#根据键得到值
for i in dic:
# print(dic[i])
print(dic.get(i))
#遍历键
for i in dic.keys():
print(i)
#遍历值
for i in dic.values():
print(i)
#遍历键和值
for i,j in dic.items():
print(i,j)
4.集合(待补充)