zoukankan      html  css  js  c++  java
  • Python 数据结构--字典

    1. 列表函数

    1.1 list 函数

    如果对字符串赋值后想要改变字符串中的某个值,因为字符串不能像列表一样可更改,如果想改变这时候可以利用 list 函数,如下:

    >>> ll=list('hello')
    >>> ll
    ['h', 'e', 'l', 'l', 'o']
    >>> ll[2]
    'l'
    >>> ll[2]='5'
    >>> ll
    ['h', 'e', '5', 'l', 'o']

    注意:list 函数适用于所有类型的序列,而不只是字符串

    1.2 len 函数

    len 函数返回列表中的元素个数

    >>> list1 = ['baidu', 'google', 12, 23];
    >>> len(list1)
    4

    1.3 max 函数

    max 函数返回列表元素最大值

    >>> list_num=[2,3,5,6,8,12]
    >>> max(list_num)
    12

    1.4 min 函数

    返回列表元素最小值

    >>> list_num=[2,3,5,6,8,12]
    >>> min(list_num)
    2

    2 列表方法

    列表提供了几个详细的方法,这些方法用于检查或者修改列表中的内容

    2.1 append

    append 方法用于在列表的末尾追加新的内容

    list_append = [1,2,3,4]
    list_append.append(5)
    list_append
    [1, 2, 3, 4, 5]

    2.2 count

    count 方法用于统计某个元素在列表中出现的次数

    num
    [1, 2, 3, 4, 5, 5, 5, 5, 6]
    # 统计num列表中5出现的次数
    num.count(5)
    4
    
    # 统计字母a出现的次数
    name=['a','a','abf','ark','nhk']
    
    name.count('a')
    2

    2.3 extend

    extend 方法表示追加内容,它可以在列表的末尾一次性追加另一个序列中的多个值,也就是用新列表扩展原有列表

    a =[1,2,3]
    b = [4,5,6]
    # 将列表b追加在列表a后面
    a.extend(b)
    a
    [1, 2, 3, 4, 5, 6]

    此操作和列表的相加操作,但是追加操作改变原有列表,而相加不改变原有列表,例如:

    a = [1,2,3]
    b = [4,5,6]
    a + b
    [1, 2, 3, 4, 5, 6]
    # 连接操作不改变原有列表
    a
    [1, 2, 3]

    2.4 index

    index 方法用于从列表中找出某个元素第一次匹配的位置的索引位置

    content = ['where','who','lisi','cntent','who']
    content.index('who')
    1

    ==注意:== 以上方法中有两个位置有‘who’,但是只找出了第一次匹配的索引位置元素

    2.5 insert

    insert 方法用于像列表中插入对象

    num = [1,2,5,6,7]
    num.insert(2,3)
    num
    [1, 2, 3, 5, 6, 7]
    num.insert(3,4)
    num
    [1, 2, 3, 4, 5, 6, 7]

    2.6 pop

    pop 方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值

    x = [1,2,3]
    x.pop()
    3
    x
    [1, 2]
    x.pop()
    2
    x
    [1]

    注意:pop 方法是唯一一个既能修改列表又能返回元素值的方法(除了None),pop 和 append 方法是 Python 中数据结构的出栈和入栈,如果追加(append)刚刚出栈(pop)的值,得到的还是原来的列表

    x = [1,2,3]
    x.append(x.pop())
    x
    [1, 2, 3]

    2.7 remove

    remove 方法用于移除列表中第一个匹配的元素

    content
    ['where', 'who', 'lisi', 'cntent', 'who', 'who']
    # 移除了第一个匹配的元素
    content.remove('who')
    content
    ['where', 'lisi', 'cntent', 'who', 'who']

    2.8 reverse

    reverse 方法是将列表中的元素进行反转操作

    x
    [1, 2, 3]
    # 元素反向存储
    x.reverse()
    x
    [3, 2, 1]

    2.9 sort

    sort 方法用于在原位置排序,‘原位置排序’意味着改变原来的列表而让列表中的元素有顺序排列

    x = [2,3,5,6,1,4,7]
    x.sort()
    x
    [1, 2, 3, 4, 5, 6, 7]

    2.10 clear

    clear 方法用于清空列表

    >>> list1=['baidu', 'google', 12, 23]
    >>> list1
    ['baidu', 'google', 12, 23]
    # 清空列表内容
    >>> list1.clear()
    >>> list1
    []

    2.11 copy

    copy 方法是复制列表

    >>> list1 = ['baidu', 'google', 12, 23];
    >>> list1.copy()
    ['baidu', 'google', 12, 23]
    >>> list2 = list1.copy()
    >>> list2
    ['baidu', 'google', 12, 23]

    3. 列表基本操作

    列表可以使用所有适用于序列的标准操作,比如第7天所学的索引、分片、连接和相乘,更有趣的是,列表是可以修改的,也就是定义的列表内容可以根据需求更改,本节介绍一些改变列表的方法:如元素赋值、元素删除、分片赋值以及列表方法(但是请注意,并不是所有的列表方法都能真正改变列表)

    3.1 改变列表:元素赋值

    在列表中要给指定的元素赋值时,我们需要指定特定的索引标记来为列表中某个特定的,位置明确的元素赋值,比如 x[3]=5

    # 
    x=[1,2,3,4,5]
    x
    [1, 2, 3, 4, 5]
    # 改变列表第四个元素的内容
    x[3]=5
    x
    [1, 2, 3, 5, 5]

    ==注意:== 不能为一个位置不存在的元素赋值,如果列表长度为2,则不能为索引为10 的元素进行赋值,如果需要赋值则需要创建一个长度为11的列表。

    3.2 删除列表元素

    若要删除列表中的元素,直接利用del删除即可

    # 定义长度为4的姓名列表
    names=['zhangsan','lisi','wangwu','zhaoliu']
    names
    ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
    
    # 删除第三个元素
    del names[2]
    
    # 最后列表长度由4变为3
    names
    ['zhangsan', 'lisi', 'zhaoliu']

    del 语句还能用于删除其他元素,也可以用于变量的删除操作。

    3.3 分片赋值

    在 Python 中对序列或者列表的分片操作是一个很强大的特性,分片赋值会显得更加强大,例如:

    # 定义一个list
    name = list('Pyther')
    
    # 改变 list 中的最后两个值
    name[4:]='on'
    name
    ['P', 'y', 't', 'h', 'o', 'n']

    从上可知,程序可以一次为多个元素赋值,在分片赋值时,可以使用与原序列不等长的序列将分片替换,例如:

    name_re = list('perl')
    name_re
    ['p', 'e', 'r', 'l']
    # 分片替换
    name_re[1:] = list('ython')
    name_re
    ['p', 'y', 't', 'h', 'o', 'n']

    分片赋值还可以在不需要更改原有列表任何内容的情况下进行新元素插入

    num = [1,4,5]
    # 在第一个元素后插入新的元素
    num[1:1]=[2,3]
    num
    [1, 2, 3, 4, 5]

    同理也可以通过分片操作来删除列表中的元素,同样也支持负数分片操作

    num
    [1, 2, 3, 4, 5]
    # 给第一个和迪桑元素之间分片赋值一个空序列,即删除元素
    num[1:3] = []
    num
    [1, 4, 5]
    
    # 负数分片操作
    num[-1:-1] = [5,5,5]
    num
    [1, 2, 3, 4, 5, 5, 5, 5]
  • 相关阅读:
    java Future 模式
    多线程的优点和代价
    转:Java同步synchronized使用
    管程
    【移动开发人员沙龙 北京站】第二期 报名火热来袭
    POJ 3111 K Best(最大化平均值)
    坐标和依赖
    分析cocos2d-x在Android上的编译过程(1):cocco2d-x是怎样生成的Android的文件夹结构
    执行startx后Ubuntupassword正确进不去的问题
    leetcode 刷题之路 64 Construct Binary Tree from Inorder and Postorder Traversal
  • 原文地址:https://www.cnblogs.com/wlike/p/12143601.html
Copyright © 2011-2022 走看看