python-列表

    • 前面我们了解了str、int、float等数据类型,比如人名用str,name=‘菜鸟’,那如果我们一个部门呢?还用字符串存数据吗?names =‘菜鸟,张三,李四’这样存数据,在调用的时候岂不是很麻烦,比如我们想取到星星,还要用到字符串方法,会比较麻烦,或者你想每个人取一个字符串的变量,这样也很麻烦,有多少个人,岂不是就要定一个多少个变量了?
    • 为了解决这些麻烦,就有了列表,顾名思义,就是一个表,里面村范一系列数据,python里的列表定义比其他语言要简单,中括弧 [ ]括起来就是列表了,当然在python里列表也叫数组,大家不要因为名字不同而困惑,都一个概念,列表增删改查如下:
      • 列表命名
      • # 列表命名,列表名=[元素1,元素2,元素3],元素用英文逗号隔开,元素如果是字符串需要加引号
        names =['张三','李四','王五','小红','小明']
        # 列表里的元素是有排序的,所以每个元素都有一个数字编号,计算机是从0开始的,所以['张三','李四','王五','小红','小明']
        # 这些元素对应的索引一次为:01234,当然在python里除了索引这个叫法,还有下标、角标,都一个意思
        

          

         

         

      • 列表取值
      • 1 # 列表取值
        2 print(names[0])  #列表名[元素索引],这个格式就去到索引对应的元素了,这里取到'张三',列表只有这一种取值方法
        3 print(names[-1]) #负数表示从后往前取元素,这里取到了小明
        

          

      • 新增元素
      • 1 # 新增元素
        2 names.append('刚刚')  #列表名.append(元素),这个方法是在列表最后面加一个元素,这里在列表最后加上'刚刚'
        3 print(names)          # 结果为:['张三', '李四', '王五', '小红', '小明', '刚刚']
        4 names.insert(2,'李白')  #列表名.insert(索引值,元素),这个方法是在指定索引位置插入元素,之前该位置及后面的元素向后移一位
        5 print(names)            #结果为:['张三', '李四', '李白', '王五', '小红', '小明', '刚刚']
        

          

      • 修改元素
      • 1 # 修改元素
        2 names[0] = '杜甫'       #列表名[索引值]=新元素,这样就修改元素了
        3 print(names)            #结果为:['杜甫', '李四', '李白', '王五', '小红', '小明', '刚刚'
        

          

      • 删除元素
      •  1 # 删除元素
         2 names.pop()  #默认删除最后一个元素
         3 print(names) #结果为:['张三', '李四', '王五', '小红']
         4 names.pop(2) #删除指定下标的元素
         5 print(names) #结果为:['张三', '李四', '小红']
         6 names.remove('小红') #和pop不同,删除列表中指定的元素
         7 print(names)         #结果为:['张三', '李四']
         8 del names[1]  #删除指定下标的元素
         9 print(names)  #结果为:['张三']
        10 names.clear() #清空列表
        11 print(names)  #结果为:[]
        

          

      • 定义多维数组
      •  

        1 # 多维数组
        2 names1=['小刚','小红',['宙斯','美杜莎'],'杜甫','李白'] #数组里再来一个数据就是二维数组了
        3 names2=['小刚','小红',['宙斯',['美杜莎','女王']],'杜甫','李白']
        4 print(names2[2][1][1])   #取到的值为'女王'
        

          

      • 列表内置方法:
      •  

         1 # 内置方法
         2 names =['张三','李四','王五','小红','小明']
         3 names2 = ['宙斯','美杜莎']
         4 # names.extend(names2)   #合并两个list,将names2合并到names里面
         5 print(names)           #结果为:['张三', '李四', '王五', '小红', '小明', '宙斯', '美杜莎']
         6 names+names2       #合并两个list。但和上面不一样,这里只是把两个列表链接起来,原来的列表不会变化,类似字符串相加
         7 new_name =names+names2 #用+号的时候,需要用一个新列表来接收
         8 print(new_name)        #结果为:['张三', '李四', '王五', '小红', '小明', '宙斯', '美杜莎']
         9 print(names.count('张三'))
        10 print(names.sort())
        

          

      • 列表切片:
        • 顾名思义,就是把列表切成我们想要的片段。上面了解到,列表是有下标、索引的,name切片就是根据这个下标来进行切片的,比如我想取第一个元素到第三个元素,那么就这样写:names[0:3],这样就取到前面三个元素了
        • 但是你会发现,3的下标第四个元素,为啥切片要切到3呢,因为python切片里,顾头不顾尾,意思就是从下标取到结束下标的前一位元素。
        • 另外如果是从0下标开始取值,那么可以省略不写,直接写names[:3]即可
        • 如果是取值到最后,那么可以省略不写最后的索引,直接写names[3:]即可
        • 显然[:]这样就是取全部了
        • 步长:每走几步取一个元素,比如num【0:10:2】,这里就是美两个元素取一个,取值结果为[1,3,5,7,9]
        • 1 # 列表切片
          2 nums=[1,2,3,4,5,6,7,8,9]
          3 print(nums[1:3])  #取第二个元素到第三个元素,结果为[2, 3]
          4 print(nums[3:])   #从第四个元素开始,取所有的元素,一直取到最后,结果为[4, 5, 6, 7, 8, 9]
          5 print(nums[:6])   #取所有元素,从头开始取,前面的下标可以不写,结果为[1,2,3,4,5,6]
          6 print(nums[1:10:2])  #步长为2,每两个元素取一个,结果为[1,2,3,4,5,6,7,8,9]
          7 print(nums[::1])  #取素有的元素,1就是每个元素都取,结果为[1,2,3,4,5,6,7,8,9]
          8 print(nums[::-1])  #步长为负数的情况下是从后往前取,结果为[9, 8, 7, 6, 5, 4, 3, 2, 1]
          9 print(nums[7:1:-2])  #步长为负数时,这里的下标必须是前面的下标大于后面的下标,因为他是从后往前取的,结果为:[8, 6, 4]
          

            

           

posted on 2020-11-23 14:20  VickyChen0308  阅读(125)  评论(0编辑  收藏  举报