zoukankan      html  css  js  c++  java
  • 转载:python中列表的用法总结

    一、list()函数

    ls = list() #创建一个空列表。
    st = {1,2,3,"a"} #集合类型
    d = {1:"a",2:"b"} #字典类型
    t = (1,2,3,"b") #元组类型
    s = "厉害了,我的国!" #字符串类型
     
    #将集合,字典,元组,字符串 类型转化为列表类型
    ls1 =list(st)
    ls2 =list(d)
    ls3 =list(t)
    ls4 =list(s)
     
    print(ls)
    print(ls1)
    print(ls2)
    print(ls3)
    print(ls4)

    程序运行结果:

    []
    [1, 2, 3, 'a']
    [1, 2]
    [1, 2, 3, 'b']
    ['', '', '', '', '', '', '', '']

    二、append()函数

    ls1 = [1,2,3,4,5,6]
    ls2 = [1,2,3,4,5,6]
    ls1.append(12)
     
    #可以添加列表,字典,元组,集合,字符串等
    ls2.append([1,"a"])  #添加列表
    ls2.append({2:"a",3:"hj"}) #添加字典
    ls2.append((1,"k",3)) #添加元组
    ls2.append({"1","2","h"}) #添加集合
    ls2.append("123abc") #添加字符串
     
    print(ls1.append(12)) #无返回值
    print(ls1) #append()函数的操作对象是原列表。
    print(ls2)

     程序运行结果:

    None
    [1, 2, 3, 4, 5, 6, 12, 12]
    [1, 2, 3, 4, 5, 6, [1, 'a'], {2: 'a', 3: 'hj'}, (1, 'k', 3), {'2', '1', 'h'}, '123abc']

    三、clear()函数

    ls = [1,2,3,"4",5,"a"]
    ls.clear() #删除列表中的所有元素。
    print(ls.clear()) #无返回值
    print(ls) #返回的ls为空列表。

    程序运行结果:

    None
    []

    四、copy()函数

    ls = [1,2,3,[4,5,6]]
    lt = ls.copy() #lt复制ls中的所有元素
    ls.clear() #删除ls所有元素,lt中的元素没有被删除。
    lk = ls #这不是复制,而是给列表ls新关联一个引用,即增加一个别名,ls和lt指向同一个内存地址。
    print(id(ls),id(lk))
    print(lt)
    print(ls)

    程序运行结果:

    2161190907400 2161190907400
    [1, 2, 3, [4, 5, 6]]
    []

    发现一个有趣的现象:

    无论是修改原列表ls的内嵌套列表的元素,还是修改复制列表lt的内嵌套列表元素。列表ls和列表lt的内嵌套列表元素都将改变。

    但修改列表ls或列表lt的其它非嵌套元素,都不改变对方相应的元素。

    程序示例①:

    ls = [1,2,3,[4,5,6]]
    lt = ls.copy() #lt复制ls中的所有元素
    ls[0] = "a" #对变列表ls中的第一个元素进行修改
    ls[3][0] = "a" #对列表ls中第四个元素的第一个元素进行修改
    print(lt) #列表lt的第一个元素不变,但第四个元素的第一个元素发生改变。
    print(ls)

    程序运行结果:

    [1, 2, 3, ['a', 5, 6]]
    ['a', 2, 3, ['a', 5, 6]]

    程序示例②:

    ls = [1,2,3,[4,5,6]]
    lt = ls.copy()
    lt[0] = "a" #对变列表lt中的第一个元素进行修改
    lt[3][0] = "a" #对列表lt中第四个元素的第一个元素进行修改
    print(lt)
    print(ls) #列表ls的第一个元素不变,但第四个元素的第一个元素发生改变。

    程序运行结果:

    ['a', 2, 3, ['a', 5, 6]]
    [1, 2, 3, ['a', 5, 6]]

    程序示例③:深层复制方法

    import copy
    ls = [1,2,3,[7,"b",9],"a"]
    lt1 = copy.deepcopy(ls) #深层复制。
    lt2 = copy.copy(ls) #浅层复制
    ls[3][1] = "abc123" #改变原列表ls中内嵌套列表[7,"b",9] 中的“b”元素。深层复制的lt1列表对应位置元素不改变,但浅层复制改变。
    print(ls)
    print("深层复制:",lt1)
    print("浅层复制:",lt2)

    程序运行结果:

    [1, 2, 3, [7, 'abc123', 9], 'a']
    深层复制: [1, 2, 3, [7, 'b', 9], 'a']
    浅层复制: [1, 2, 3, [7, 'abc123', 9], 'a']

    总结:ls.copy() 函数只能 copy 一层,即copy()复制是浅复制。

    五、count()函数

    ls = [1,2,3,5,4,5,5,5,5,"python"]
    print(ls.count(5)) #统计列表ls中 5 出现的次数
    print(ls.count(0)) #列表ls中无0元素
    print(ls.count("python")) #统计列表ls中 "python" 出现的次数。

    程序运行结果:

    5
    0
    1

    六、extend()函数

    程序示例①:

    ls = [1,2,"a",[4,5,"a"]]
    lt = [1,"abc","b",[1,2]]
    ls.extend(lt) #返回值为空,将列表lt的元素添加到列表ls末尾。
    print(ls.extend(lt)) 
    print(ls)
    print(lt) #列表lt元素不变

    程序运行结果:

    None
    [1, 2, 'a', [4, 5, 'a'], 1, 'abc', 'b', [1, 2], 1, 'abc', 'b', [1, 2]]
    [1, 'abc', 'b', [1, 2]]

    程序示例②:

    ls = [1,2,"a",[4,5,"a"]]
    lt = [1,"abc","b",[1,2]]
    ls.extend(lt[0:3]) #返回值为空,将列表lt中的 1, 'abc', 'b' 添加到列表ls末尾。
    print(ls)
    print(lt)  #列表lt元素不变

    程序运行结果:

    [1, 2, 'a', [4, 5, 'a'], 1, 'abc', 'b']
    [1, 'abc', 'b', [1, 2]]

    七、index()函数

    ls = [1,2,3,"a",3,5,"a",5,[1,7,"b"]]
    print(ls.index("a")) #返回列表ls中"a"第一次出现的位置。
    print(ls.index("a",4)) #索引的起始位置为下标为4的元素,索引范围为 3, 5, 'a', 5, [1, 7, 'b'
    print(ls.index("a",4,8)) #索引的起始位置为下标为4的元素,结束位置为下标为7的元素。索引范围 3, 5, 'a', 5
    print(ls.index(3))
    print(ls[8].index("b")) #返回列表ls内嵌套列表[1,7,"b"]中"b"第一次出现的位置
    print(ls.index(0)) #列表ls无0,报错

    结果:

    3
    6
    6
    2
    2
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-64-c3f3008df73b> in <module>()
          5 print(ls.index(3))
          6 print(ls[8].index("b")) #返回列表ls内嵌套列表[1,7,"b"]中"b"第一次出现的位置
    ----> 7 print(ls.index(0)) #列表ls无0,报错
     
    ValueError: 0 is not in list

    八、insert()函数

    程序示例①:

    ls = [1,2,"a",["a",5,8]]
    ls.insert(3,"b")#在列表ls下标为3的位置插入元素 1
    ls.insert(3,1) #在列表ls下标为3的位置插入元素 "b"
    ls[5].insert(0,"acv") #在列表ls的内嵌套列表["a",5,8],下标为0的位置插入字符串"acv"
    print(ls)

    程序运行结果:

     
    [1, 2, 'a', 1, 'b', ['acv', 'a', 5, 8]]

    程序示例②:

    ls = [1,2,3]
    ls.insert(0,[1,2,3]) #插入列表
    ls.insert(0,(1,2,3)) #插入元组
    ls.insert(0,{1:"a",2:"b"}) #插入字典
    ls.insert(0,{1,2,3}) #插入集合
    print(ls)

    程序运行结果:

    [{1, 2, 3}, {1: 'a', 2: 'b'}, (1, 2, 3), [1, 2, 3], 1, 2, 3]

    九、pop()函数

    ls = [1,2,"a","y",[1,2,3],"b"]
    print(ls.pop(0)) #取出下标为0的元素,并从列表ls中删除。
    print(ls.pop(3))
    print(ls.pop()) #默认取出列表ls最后一个元素,并删除。
    print(ls) #列表中的 1 [1,2,3]  "b" 元素已被删除。

    结果:

    1
    [1, 2, 3]
    b
    [2, 'a', 'y']

    十、remove()函数

    ls1 = [1,2,"a",3,1,1,55,"a,1"]
    ls2 = [1,2,"a",3,1,1,55,"a,1"]
    ls1.remove(1) #删除ls1中第一次出现的元素 1
    ls2.remove("a") ##删除ls2中第一次出现的元素 "a"
    print(ls1.remove(1)) #返回值为空
    print(ls1)
    print(ls2)

    结果:

    None
    [2, 'a', 3, 1, 55, 'a,1']
    [1, 2, 3, 1, 1, 55, 'a,1']

    也可以使用python的保留字 del 对列表的元素或部分片段进行删除

    语法:

    ① del  <列表变量>[索引序列号] 

    ② del <列表变量>[索引起始位置 :索引结束位置]

    ③ del <列表变量>[索引起始位置 :索引结束位置:步长]

    程序示例:

    ls1 = [1,2,3,4,"a",[1,2,3],5,6]
    ls2 = [1,2,3,4,"a",[1,2,3],5,6]
    ls3 = [1,2,3,4,"a",[1,2,3],5,6]
     
    del ls1[0] #删除列表ls1中下标为0的元素
    print(ls1)
     
    del ls1[2:] #删除列表ls1中 起始下标为2,到结尾的元素
    print(ls1)
     
    del ls2[2:6] #删除列表ls2中 起始下标为2,终止下标为6 之间的元素。
    print(ls2)
     
    del ls3[1:6:2] #起始位置为2,终止位置为6,步长为2
    print(ls3)

    程序运行结果:

    [2, 3, 4, 'a', [1, 2, 3], 5, 6]
    [2, 3]
    [1, 2, 5, 6]
    [1, 3, 'a', 5, 6]
     
     
    ​

    十一、reverse()函数

    ls1 = [1,2,3,4,5,6,7,8,9]
    ls1.reverse() #将列表ls1反转输出
    print(ls1)
     
    ls2 = [2,5,8,9,4,1,2,6,2,1,3]
    ls2.sort(reverse=True) #ls2.sort()默认将列表ls2按从小到大的序数排列。reverse=True 使排序后的列表反转,reverse=False 则不反转
    print(ls2)

    结果:

    [9, 8, 7, 6, 5, 4, 3, 2, 1]
    [9, 8, 6, 5, 4, 3, 2, 2, 2, 1, 1]

    十二、sort()函数

    ls1 = [5,2,1,6,9,55,2,8,10]
    ls2 = [(1,2),(3,5),(55,1),(6,0)]
    ls3 = ["a","z","A","y","g"]
    ls4 = [1,6,2,"a","z","h"]
     
    ls1.sort() #默认升序排序
    print(ls1)
     
    def f(n):
        return n[1] #对元组的第二个元素进行升序排序
    ls2.sort(key=f)
    print(ls2)
     
    ls3.sort(reverse=True) #降序排序
    print(ls3)
     
    ls4.sort() #会报错,列表ls4中元素种类不同。
    print(ls4) 

    结果:

    [1, 2, 2, 5, 6, 8, 9, 10, 55]
    [(6, 0), (55, 1), (1, 2), (3, 5)]
    ['z', 'y', 'g', 'a', 'A']
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-123-7a42b5fc86f8> in <module>()
         15 print(ls3)
         16 
    ---> 17 ls4.sort()
         18 print(ls4)
     
    TypeError: unorderable types: str() < int()
  • 相关阅读:
    性能瓶颈调优(转载)
    jmeter用Firefox录制https协议证书问题解决(转载)
    Jmeter之性能测试类型
    Jmeter调度器配置(转载)
    性能测试监控:Jmeter +InfluxDB +collectd +Grafana(十六)(转载)
    Jmeter之性能压测Stepping Thread Group 逐步增加并发数 阶梯式加压并发 (十五)(转载)
    Jmeter之性能测试插件PerfMon Metrics Collector监听器,实时监听服务器资源(十四)(转载)
    Jmeter用Jmeter自带录制工具代理录制手机端应用脚本APP脚本(0十三)(转载)
    python在windows下连接mysql数据库
    码农在线工具资源
  • 原文地址:https://www.cnblogs.com/lijialun/p/10098979.html
Copyright © 2011-2022 走看看