zoukankan      html  css  js  c++  java
  • python基本数据类型-列表list

    1.定义

    []内以逗号分割,按照索引,存放各种数据类型(字符串,数字,列表),每个位置代表一个元素。

    2.特性

    2.1 可以存放多个值
    2.2 按照从左到右的顺序定义列表,下标从0开始顺序访问,有序
    2.3 可修改指定索引位置的值,可变(与str相反,str是不可修改的)

    3.列表的常用操作

    3.1 列表的增加

    3.1.1 append()

    追加,数据会追加到尾部

           >>> names = ['小明','Mr.wang',22]
           >>> names.append('小张')
           >>> names
           ['小明', 'Mr.wang', 22, '小张']
    
    3.1.2 insert()

    根据索引插入,可插入任何位置(插到索引的位置)

          >>> names.insert(1,'mekio')
          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, '小张']
          >>> names.insert(5,'xiye')
          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye']
    
    3.1.3 extend()

    合并操作,把一个列表合并到另一个列表中

          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye']
          >>> rng = ['uzi','xiaohu']
          >>> names.extend(rng)
          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye', 'uzi', 'xiaohu']
    

    3.2 列表删除

    3.2.1 根据索引直接删除
          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, '小张', 'xiye', 'uzi', 'xiaohu']
          >>> del names[4]
          >>> names
          ['小明', 'mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
          >>> del names[0]
          >>> names
          ['mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
    
    3.2.2 pop(index)

    删除索引处的元素并且返回被删除的元素,如果没有索引则默认删除最后一个元素

          >>> names
          ['mekio', 'Mr.wang', 22, 'xiye', 'uzi', 'xiaohu']
          >>> names.pop()
          'xiaohu'
          >>> names.pop(1)
          'Mr.wang'
    
    3.2.3 remove()

    根据列表元素删除,删除在列表中找到的第一个目标值

          >>> names
          ['mekio', 22, 'xiye', 'uzi', 'mekio']
          >>> names.remove('mekio')
          >>> names
          [22, 'xiye', 'uzi', 'mekio']
    
    3.2.4 clear()

    清空列表

          >>> rng
          ['uzi', 'xiaohu']
          >>> rng.clear()
          >>> rng
          []
    

    3.3 列表修改

    3.3.1 根据索引修改
          >>> names
          [22, 'xiye', 'uzi', 'mekio']
          >>> names[0]='letme'
          >>> names
          ['letme', 'xiye', 'uzi', 'mekio']
          >>> names[-1] = 'mlxg'    # -1为倒数第一个元素的索引
          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg']
    

    在不知道某一个元素在哪个位置的修改方法
    1.判断该元素是否在列表中 target in list:
    2.如果在,取出索引 index = list.index(target)
    3.修改 list[index] = new_target

    3.4 列表查找

    3.4.1 index()

    返回查找元素的索引

          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg']
          >>> names.index('xiye')
          1
          >>> names.index('mlxg')
          3
    
    3.4.2 count()

    返回查找元素在列表中个数

          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg', 'letme']
          >>> names.count('uzi')
          1
          >>> names.count('letme')
          2
    

    3.5 切片

    切片操作是顾头不顾尾

    3.5.1
          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg', 'letme']
          >>> names[0:3]
          ['letme', 'xiye', 'uzi']
    

    切片操作时,当起始参数为0可以省略不写,即上述操作也可写为

          >>> names[:3]
          ['letme', 'xiye', 'uzi']
    
    3.5.2 取最后的两个值
          >>> names[3:5]  # 超标写法,即索引超出
          ['mlxg', 'letme']
          >>> names[3:]   # 省略写法,即从索引开始,取到最后
          ['mlxg', 'letme']
    
    3.5.3 倒着切
          names[-3:-1] # 取出倒数第三个和倒数第二个
          ['uzi', 'mlxg']
          >>> names[-3:] # 取出倒数后三个
          ['uzi', 'mlxg', 'letme']
    
    3.5.4 根据步长跳着切
          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg', 'letme']
          >>> names[::2] # 从第一个切到最后一个,步长为2,全部省略即为从开始切到最后,且包括开始和最后的元素
          ['letme', 'uzi', 'letme']
    

    3.6 排序 sort()

    根据字符编码排序

          >>> num = [2,4,7,4,5,0,1,8]
          >>> num.sort()
          >>> num
          [0, 1, 2, 4, 4, 5, 7, 8]
    

    3.7 反转 reverse()

          >>> num
          [0, 1, 2, 4, 4, 5, 7, 8]
          >>> num.reverse()
          >>> num
          [8, 7, 5, 4, 4, 2, 1, 0]
          >>> names
          ['letme', 'xiye', 'uzi', 'mlxg', 'letme']
          >>> names.reverse()
          >>> names
          ['letme', 'mlxg', 'uzi', 'xiye', 'letme']
    

    3.8 循环列表

    >>> for i in names:
    	print(i)
    
    	
    letme
    mlxg
    uzi
    xiye
    letme
    
    created by Caizhi
  • 相关阅读:
    用perfmon简单分析GDI+性能和代码的一点小改进
    从clr profiler的角度看string concat 和stringbuilder的性能差别
    CLR兴趣小组第一次活动总结
    C#3.0看起来比较酷的咚咚
    windbg入门及提高(广告贴)
    济南.NET技术俱乐部8月份活动预告
    WebService安全性的问题
    Basic Windbg 4.Out Of Memory的分析及诊断方法
    A question about C++ static method and C# static method
    内存泄露的小问题
  • 原文地址:https://www.cnblogs.com/cai-zhi/p/14316554.html
Copyright © 2011-2022 走看看