zoukankan      html  css  js  c++  java
  • python笔记(3)---列表

    lst = ["bob","jack","马云","马化腾""王健林"]
    
    del lst[1:3]
    
    print(lst)

    一、列表索引和切片

    lst = ["移动硬盘", "手机", 110, True, False, ["人民币", "美金", '欧元']]
    
    lst = ["海上钢琴师", "奥特曼", "咒怨", "舌尖上的中国", "穹顶之下", "金刚"]
    
    print(lst[3][2])   #
    print(lst[-2])     # 穹顶之下
    print(lst[1:4])    # ['奥特曼', '咒怨', '舌尖上的中国']
    print(lst[-3:-1])  # 顾头不顾尾
    print(lst[1::2])
    print(lst[-1:-5:-2])

    二、列表增加

    2.1 append

    lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
    
    在屁股后面添加
    lst.append("黄宏") # 在原有的基础上进行的操作

    2.2 insert

    # 在xxx位置插入xxxx内容

    lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
    
    lst.insert(1,"王力宏")
    
    print(lst)
    
    ["赵四","王力宏","施瓦星格", "黄渤", "郭达森", "赛利亚"]

    2.3 extend

     # 迭代添加

    lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
    lst.extend(
    "麻花藤") print(lst) ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚","","",""]
    
    
    lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]
    lst.extend(["麻花藤", "马云"])
    print(lst)
    ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚""麻花藤", "马云"]

     2.4 如果对列表中空的 slice 赋值,就变成了为列表插入元素

    # 将第3个到第3个(不包含)元素赋值为新列表的元素,就是插入
    b_list[2: 2] = ['x', 'y']
    print(b_list) 
    # [1, 'a', 'x', 'y', 'b', 4]

    三、列表删除

     3.1 pop()

    # 根据索引删除元素

    lst = ["bob","jack","马云"]
    data = lst.pop() #pop()不加索引,默认删除末尾元素,并返回被删除的数据 print(data)
    "马云"
    print(lst)
    ["bob","jack"]


     3.2 remove()

    lst = ["bob","jack","马云"]
    lst.remove("bob") # 删除元素.
    lst.remove("刘能") # 如果不存在会报错

    3.3 del

    # 切片删除

    lst = ["bob","jack","马云","马化腾""王健林"]
    del lst[1:3]
    print(lst)
    ["bob","马化腾""王健林"]

    3.4 如果将列表其中一段赋值为空列表,就变成了从列表中删除元素

    # 将第3个到第6个(不包含)元素赋值为空列表,就是删除
    b_list[2: 5] = []
    print(b_list) # [1, 'a', 4]

    四、列表修改

    4.1 对元素赋值

    a_list = [2, 4, -3.4, 'crazyit', 23]
    # 对第3个元素赋值
    a_list[2] = 'fkit'
    print(a_list) # [2, 4, 'fkit', 'crazyit', 23]

     4.2 对列表中间一段赋值

    b_list = list(range(1, 5))
    print(b_list)
    # 将第2个到第4个(不包含)元素赋值为新列表的元素
    b_list[1: 3] = ['a', 'b']
    print(b_list)
    # [1, 'a', 'b', 4]

    4.3 使用字符串赋值,Python 会自动把字符串当成序列处理,其中每个字符都是一个元素。

    # Python会自动将str分解成序列

    b_list = list(range(1, 5))

    b_list[1: 3] = 'Charlie'
    print(b_list) # [1, 'C', 'h', 'a', 'r', 'l', 'i', 'e']

    4.4 在使用 slice 语法赋值时,也可指定 step 参数。但如果指定了 step 参数,则要求所赋值的列表元素个数与所替换的列表元素个数相等

    c_list = list(range(1, 10))
    # 指定step为2,被赋值的元素有4个,因此用于赋值的列表也必须有4个元素
    c_list[2: 9: 2] = ['a', 'b', 'c', 'd']
    print(c_list) # [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']

     五、列表常用方法

    5.1 count()

    # 统计元素出现的次数

    a_list = [2, 30, 'a', [5, 30], 30]
    # 计算列表中30的出现次数
    print(a_list.count(30))
    # 计算列表中[5, 30]的出现次数
    print(a_list.count([5, 30]))

    5.2 index()

    # 查找元素的index

    a_list = [2, 30, 'a', 'b', 'crazyit', 30]
    # 定位元素30的出现位置
    print(a_list.index(30))
    # 从索引2处开始、定位元素30的出现位置
    print(a_list.index(30, 2)) 
    # 从索引2处到索引4处之间定位元素30的出现位置,因为找不到该元素,会引发 ValueError 错误
    print(a_list.index(30, 2, 4))

    运行结果为:

    1
    5
    Traceback (most recent call last):
      File "C:UsersmengmaDesktop1.py", line 7, in <module>
        print(a_list.index(30, 2, 4)) # ValueError
    ValueError: 30 is not in list

    5.3 reverse()

    # reverse() 方法会将列表中所有元素反向存放

    a_list = list(range(1, 8))
    # 将a_list列表元素反转
    a_list.reverse()
    print(a_list)

    运行结果为:

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

    5.4 sort()

    # sort() 方法用于对列表元素进行排序

    语法结构:

    listname.sort(key=None, reserse=False)
    • key 参数用于指定从每个元素中提取一个用于比较的键。例如,使用此方法时设置 key=str.lower 表示在排序时不区分字母大小写。
    • reverse 参数用于设置是否需要反转排序,默认 False 表示从小到大排序;如果将该参数设为 True,将会改为从大到小排序。

    例如如下代码:

    a_list = [3, 4, -2, -30, 14, 9.3, 3.4]

    # 对列表元素排序

    a_list.sort()
    
    print(a_list)
    
    b_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang']
    
    # 对列表元素排序:默认按字符串包含的字符的编码大小比较
    
    b_list.sort()
    
    print(b_list) # ['Erlang', 'Go', 'Kotlin', 'Python', 'Ruby', 'Swift']

    运行结果为:

    [-30, -2, 3, 3.4, 4, 9.3, 14]
    ['Erlang', 'Go', 'Kotlin', 'Python', 'Ruby', 'Swift']

    如下代码示范了 key 和 reverse 参数的用法:

    b_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang']
    
    # 指定key为len,指定使用len函数对集合元素生成比较的键,也就是按字符串的长度比较大小
    
    b_list.sort(key=len)
    
    print(b_list)
    
    # 指定反向排序
    
    b_list.sort(key=len, reverse=True)
    
    print(b_list)

    运行结果为:

    ['Go', 'Ruby', 'Swift', 'Python', 'Kotlin', 'Erlang']
    ['Python', 'Kotlin', 'Erlang', 'Swift', 'Ruby', 'Go']

    上面两次排序时都将 key 参数指定为 len,这意味着程序将会使用 len() 函数对集合元素生成比较大小的键,即根据集合元素的字符串长度比较大小。

    注意,采用 sort() 方法对列表进行排序时,对中文支持不好,其排序结果与常用的音序排序法或者笔画排序法都不一致,因此,如果需要实现对中文内容的列表排序,还需要重新编写相应的方法进行处理,而不能直接使用 sort() 方法。

  • 相关阅读:
    python之redis
    redis 双写一致性问题
    MySQL主从复制与读写分离
    高并发下Redis如何保持数据一致性(避免读后写)
    redis的no-appendfsync-on-rewrite参数
    Redis基础、高级特性与性能调优
    python连接redis sentinel集群
    ListView阻尼效果
    零基础学python-5.6 数字位操作与其它工具
    iOS 实现QQ界面
  • 原文地址:https://www.cnblogs.com/lizhewei/p/11899360.html
Copyright © 2011-2022 走看看