python数据结构:

          1.列表 :相当于一个容器,里边可以存放多个数据(可以不同类型),一次可以处理多个数据,变量只能存放一个数据,                           一次只能存放一个数据

            

             在列表中存值(添加数据):


                list.append() 在列表的末尾一次性添加个数据

                list.append([]) ,list.append(()),list.append({})添加列表,元组,字典时相当于添加一个数据 

                list.extend([]) 在列表的末尾一次性添加多个数据,要以列表形式添加,在列表中也可嵌套元组,字典

                list.insert(插入位置,插入数据) 在指定位置(下标)添加一条数据,其余数据后移,不会覆盖原数据。

                插入数据可以是字符串,列表,元组,字典,不过都相当于一个数据。

        

             列表的运算:


                list1+list2=两个列表拼接成一个列表

                list*数字(只能是与整数或者被赋予整数的变量相乘) 乘几就是在一个列表中重复输出几次list的元素


             列表的判断:


                in:判断某一个元素在不在列表中  在  True  不在  False       格式:  if 需要判断的元素 in 列表:

                not in:判断某一个元素在不在列表中  在True 不在False    格式: if 需要判断的元素 not in 列表:


             在列表中删除数据:


                list.remove(指定元素)  要是没有指定要删除的元素,则报错

                list.pop(指定下标) 如果括号内不写则默认删除列表最后一个元素

                list.clear() 清空该列表所有元素


             查找元素:


                len(list) 查长度

                list.index() 根据元素查下标,要是列表中有相同元素,则输出该元素最小的下标(即第一个出现该元素的位置),要是列表内没有要查找的元素则报错

                list.count()查找元素在列表中出现的个数


             截取(切片):


                list[a:b]  a,b为列表下标

                list[a:b] 截取从a-b之间的元素,不包含最大值b

                list[:b]   截取从0到b之间的元素,不包含最大值b

                list[a:]   截取从a到len(list[])-1之间的元素

                list[a::b] 截取从a到len(list[])-1之间的元素,  a>0 正截(左边开始)  a<0 反截(右边开始)    b代表步长 b>0 正加(往右边走)  b<0 反加(往左边走)


             排序:


                list.sort[]  升序 从小到大

                list.reverse[]   倒序,只是把列表元素反过来输出,不是降序  想降序必须先list.sort[]升序后再list.reverse[]


             复制:


                在程序当中运行内存一般包括两块内容

                栈:整数,小数,布尔存栈

                堆:字符串,列表等等全在堆存储

                变量存栈,值存堆

                =复制的是地址值,一个改变会影响另一个(浅拷贝就是只拷贝栈中对应堆中的地址)

                list.copy() 复制的数据,不会影响(深拷贝就是直接找到堆中的数据赋予另一个变量)

                  这里存在一个逻辑问题(很重要)

                  在.py中分别运行下边两个代码块:

                      ①    a=[1,2,3,4]                                                         ②  a=[1,2,3,4]

                             b=a                                                                          b=a.copy()

                             b[0]=2                                                                      b[0]=2

                             print(a,b)                                                                  print(a,b)

                  观察区别(先别看下边的解释):




python在列表中添加字典 python列表中放入字典_字典

python在列表中添加字典 python列表中放入字典_python在列表中添加字典_02


             这个题理解之后我们再看另外一道题:

              *********(待补充)**********

             列表的特点:

                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.集合

*********待补充********

            作为刚刚学习python3的菜鸟,我只是把我每天学习的内容分享出来,由于水平还有限,一些题的解题方法,用目前所学的知识解起来都显得比较笨拙与复杂,不过也没办法,谁让这是老师的要求不能用后边的知识呢,毕竟用目前所学的知识解题有很大的局限性,随着课程的学习,我会回过头重新来过,用新的知识去写解题方法。如果我的笔记有任何问题,请及时与我联系,我会及时更改,谢谢。