zoukankan      html  css  js  c++  java
  • 列表 元组 字典

    列表

    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。

    Python列表方法

    list.append(x)
    把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。

    >>> a.append(3)
    >>> a
    [1, 2, 3]

    list.extend(L)
    将一个给定列表中的所有元素都添加到另一个列表中,相当于 a[len(a):] = L。

    >>> b=[7,8,9]
    >>> a.extend(b)
    >>> a
    [1, 2, 3, 5, 7, 8, 9]

    list.insert(i, x)
    在指定位置插入一个元素。例如 a.insert(0, x) 会插入到整个列表之前

    >>> a.insert(0,111)
    >>> a
    [111, 1, 2, 3, 5, 7, 8, 9]

    list.remove(x)
    删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。

    >>> a.remove(7)
    >>> a
    [111, 1, 2, 3, 5, 8, 9]

    list.pop([i])
    从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。

    >>> a.pop()    #删除最后一个元素
    9
    >>> a
    [111, 1, 2, 3, 5, 8]
    >>> a.pop(4)  # 删除索引为四的元素
    5
    >>> a
    [111, 1, 2, 3, 8]

    list.clear()
    从列表中删除所有元素。相当于 del a[:]。

    >>> a.clear()
    >>> a
    []

    list.index(x)
    返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。

    >>> a=[11,22,44,11,66,33,11]
    >>> a.index(11)
    0

    list.count(x)
    返回 x 在列表中出现的次数。

    >>> a.count(11)
    3

    list.sort()
    对列表中的元素就地进行排序。

    >>> a.sort()
    >>> a
    [11, 11, 11, 22, 33, 44, 66]

    list.reverse()
    就地倒排列表中的元素。

    >>> a.reverse()
    >>> a
    [66, 44, 33, 22, 11, 11, 11]

    list.copy()
    返回列表的一个浅拷贝。等同于 a[:]。

    >>> b=a.copy()
    >>> b
    [66, 44, 33, 22, 11, 11, 11]

    元组

    元组的特性

    • 比列表速度快
    • 不可变类型,对数据写保护

    定义元组

    >>> t = (1,2,3,4)
    >>> t
    (1, 2, 3, 4)
    >>> type(t)
    <class 'tuple'>

    字典

     字典是另一种可变容器模型,且可存储任意类型对象

    字典的特性

    • 字典是无序的
    • 自带去重功能
    • 查询速度比列表快
    • 比列表占用的内存多


    为什么字典查询速度快?

    因为他是hash类型。
    哈希算法将任意以长度的二进制映射为较短的固定长度的二进制,这个小的二进制称为哈希值。哈希值是一段数据唯一且及其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改一个字母,随后的哈希都将改变。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。所以数据的哈希值可以校验数据的完整性。一般用于快速查找和加密算法。
    dict会把所有的key变成哈市表,然后将这个表进行排序。查找时python会先把这个key hash成一个数字,去hash表中查找这个key在hash表中的索引,然后拿这个索引去此key对应的value的内存地址那取值。

    字典的操作

    >>> D={}
    >>> D['name'] = 'han'          #添加键值对
    >>> D['user'] = 'qian'
    >>> print(D)
    {'user': 'qian', 'name': 'han'}
    
    >>> D.keys()                   #返回所有的键
    dict_keys(['user', 'name'])
    
    >>> D.values()                 #返回所有的值
    dict_values(['qian', 'han'])
    
    >>> D.items()                  #以元组的形式返回键值对,效率低
    dict_items([('user', 'qian'), ('name', 'han')])
    
    >>> D.get('name','Error')      #判断键是否存在
    'han'
    >>> D.get('fd','Error')   
    'Error'
    
    >>> 'host' in D               #判断'host'是不是D的键名
    False
    >>> 'name' in D
    True
    
    >>> print('I name is %(name)s' % D)    #格式化输出
    I name is han
    
    >>> D.pop('name')                #删除键
    'han'
    >>> D
    {'user': 'qian'}

    字典生成式

    >>> D = {i:i*2 for i in range(4)}
    >>> D
    {0: 0, 1: 2, 2: 4, 3: 6}
  • 相关阅读:
    JS通过组装key值访问json对象中的值
    js属性对象的hasOwnProperty方法
    ES6 去掉已经 new Date().format 方法
    Ajax不能接受php return值的原因
    CentOS最常用命令及快捷键整理
    js中for循环中需要调用异步方法,怎么确保执行的顺序?
    MYSQL 更新字段,向字段追加字符串
    java-学习2
    java-学习1
    JS----贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/hanqian/p/6472177.html
Copyright © 2011-2022 走看看