zoukankan      html  css  js  c++  java
  • Python 数据类型之一:列表(list)

      本次内容主要是总结一下 Python 数据类型中的 list (列表),关于 list 我在 Python 学习第二章已经简单介绍过了,这次呢,我这边主要总结自己学到的跟大家分享一下,有什么不对或者更好的学习方法,欢迎各位程序猿们关注留言,多多指教 ^_^

      1. 首先我们创建一个列表,如下:

    1 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    2 print(list_name)

      打印结果为:

    ['zhao', 'qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang']

      在 Python 以后的编程中,我们经常用到 list 。list 的都包含了那些操作呢?分别为:查、增、删、改、其他。下面我就以例子来说明。

    • 通过索引(下标),都是从0开始
    • 切片
    • .count   主要查某个元素出现的次数
    • '被查内容' in a   其中 a 是列表变量名
    #通过索引打印'zheng'
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    print(list_name[6])

    执行结果:

    zheng
    1 #如果想取第三位到第五位的人名呢?
    2 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    3 print(list_name[2:5])   #打印结果为:['sun', 'li', 'zhou']
    #列表在取值是左包括,右不包括,就像list_name[2:5],其中list_name[5]为:wu,而打印结果就没打印出来。
     1 #列表中元素很多,又不知道在那个位置,想从第二个人开始取出来最后一位呢?
     2 
     3 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
     4 print(list_name[1:]) #打印结果为:['qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang']
     5 
     6 #想取到倒数第二位呢?
     7 
     8 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
     9 print(list_name[1:-1]) #-1代指最后一位元素,最后一位取不出来
    10 #打印结果为:['qian', 'sun', 'li', 'zhou', 'wu', 'zheng']
    11 
    12 #跳着取,不再一个一个取
    13 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    14 print(list_name[1:6:2]) # 从左往右隔一个取一个,其中2代表步长
    15 #打印结果为:['qian', 'li', 'wu']
    16 
    17 #上述这些都是从左往右取,那么反着取呢?
    18 list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    19 print(list_name[7::-1]) #先确定取第一个的人的位置,再通过 - 来改变方向
    20 #打印结果为:['wang', 'zheng', 'wu', 'zhou', 'li', 'sun', 'qian', 'zhao']

      count()函数

    1 # count  查某个元素出现的次数
    2 
    3 list_num = [1,6,2,4,9,6,2,1,5,4,9,6,1]
    4 b=list_num.count(1) # count(被查询元素)
    5 print(b)
    6 #打印结果为:3

      index() 根据内容找索引(位置)

    # index(元素名) 方法用于从列表中找出某个值第一个匹配项的索引位置
    
    list_num = [1,6,2,4,9,6,2,1,5,4,9,6,1]
    print(list_num.index(9))
    #输出结果为:4
    #问题来了,列表中有2个9,为什么不能找到第二个呢?  这就是要说的#index() 只能找到列表中某个值的第一个匹配位置,怎么找第二个9的位置呢?
    
    #利用切片
    
    list_num = [1,6,2,4,9,6,2,1,5,4,9,6,1]
    a=list_num.index(9) # 第一个9在大列表的位置
    b=list_num[a+1:]
    c=b.index(9)    #第二个9在小列表的位置
    d=a+c+1    #第二个9 在大列表的位置
    print('第二个9的位置:',d)
    #打印结果为:10

    • append   默认插到最后一个位置 
    • insert     将数据查到任何一个位置
    #将 yang 插入到列表中
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name.append('yang') #append() 函数默认将'yang'插入到列表最后
    print(list_name)
    #输出结果为:['zhao', 'qian', 'sun', 'li', 'zhou', 'wu', 'zheng', 'wang', 'yang']

      insert() 函数应用

    #将'yang' 插入到 'zhou' 的前面
    #insert('被插入对象前的位置','插入的元素内容')
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name.insert(4,'yang') #先找到'zhou'的位置,然后输入插入对象
    print(list_name)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'yang', 'zhou', 'wu', 'zheng', 'wang']

    #单个修改
    #list_name[索引] = '替换内容'
    #多个修改
    #liest_name[索引:索引] = ['替换内容1','替换内容2']
    #将列表中的'wu'替换为'zhu'
    
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name[5]='zhu'
    print(list_name)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'zhou', 'zhu', 'zheng', 'wang']
    
    #将列表'li'后面的人员用'song','hou'替换掉
    
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name[4:]=['song','hou']
    print(list_name)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'song', 'hou']

    • remove
    • pop
    • del

      remove() 函数,删除固定的内容,不能切片

    #删除'wu'后面的所有元素
    
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name.remove(list_name[6])
    list_name.remove(list_name[6])
    print(list_name)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'zhou', 'wu']
    
    #这里为什么不能这样呢?
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    list_name.remove(list_name[6:])  #不能切片
    print(list_name)
    
    #报错内容:ValueError: list.remove(x): x not in list
    #意思就是说,list_name[6:]代表里面是个小列表['zheng','wang'],而list_name[]列表中没有这个整体的小列表,找不到这个元素。
    #如果将列表改为:
    list_name=['zhao','qian','sun','li','zhou','wu',['zheng','wang']]
    list_name.remove(list_name[6])
    print(list_name)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'zhou', 'wu']

      pop() 函数,根据索引删除,删除内容被返回(也就说,根据索引去删除列表元素,被删除的列表元素可以赋到一个变量上,为后续调用使用)

    #删除 'wu' ,顺便将wu打印出来
    
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    b=list_name.pop(5) #括号里面直接输入删除元素的索引
    print(list_name)
    print(b)
    #打印结果为:['zhao', 'qian', 'sun', 'li', 'zhou', 'zheng', 'wang']
    #wu

      del() 函数,可以删除对象

    #
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    del list_name[2]
    print(list_name)
    #打印结果为:['zhao', 'qian', 'li', 'zhou', 'wu', 'zheng', 'wang']
    
    # del 删除对象
    list_name=['zhao','qian','sun','li','zhou','wu','zheng','wang']
    del list_name
    print(list_name)
    #打印结果为:NameError: name 'a' is not defined

    其他

       reverse() ,将列表中的元素反向存放

    #reverse() 将列表反向存放
    list_num = [1,6,4,9,2,5]
    list_num.reverse()
    print(list_num)
    #打印结果为:[5, 2, 9, 4, 6, 1]

      sort() ,在原来的列表中对元素进行排序

    # sort() ,在原来的列表中进行排序
    list_num = [1,6,4,9,2,5]
    list_num.sort()
    print(list_num)
    #打印结果为:[1, 2, 4, 5, 6, 9]

      列表在这里介绍完了,后面碰到新的问题或者内容再做更新,希望对您有所帮助;如果觉得不错,请点击关注、分享,后续继续分享自己学习 Python的知识。

    点击关注,阅读更多内容 ↓↓↓

  • 相关阅读:
    Oracle Dataguard原理
    [转]TOKUDB® VS. INNODB FLASH MEMORY
    [转]什么是简约设计
    [转]DAS、NAS、SAN存储系统分析
    [转]ocp|ocm考证系列文章!
    [转]数据库范式的设计
    Block Media Recovery, BMR
    [转]开启闪回以及闪回的四种原理
    [转]Oracle DB 执行表空间时间点恢复
    Losing All Members of an Online Redo Log Group
  • 原文地址:https://www.cnblogs.com/xp0919/p/9524569.html
Copyright © 2011-2022 走看看