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

    '''
    他们各自在python中的存在形式
    字典:dic={'a':12,'b':34}
    列表:list=[1,2,3,4]
    元组:tup=(1,2,3,4)
    
    字典和列表,都是灵活可变的。而元组则不是
    Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。
    '''

     Tuple和list可以相互转化

    tuple(list)
    list(tuple)

    字典 Dict

    字典的一些方法

    D.get(key, 0)       #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
    D.has_key(key)      #有该键返回TRUE,否则FALSE
    D.keys()            #返回字典键的列表
    D.values()
    D.items()
    
    D.update(dict2)     #增加合并字典
    D.popitem()         #得到一个pair,并从字典中删除它。已空则抛异常
    D.clear()           #清空字典,同del dict
    D.copy()            #拷贝字典
    D.cmp(dict1,dict2)  #比较字典,(优先级为元素个数、键大小、键值大小)
                        #第一个大返回1,小返回-1,一样返回0

    列表 List

    列表操作,如增加新的成员时,不能够直接a[i]='value'的方法,与类语言相似,使用其成员函数进行操作

    #!/usr/bin/env python
    
    mylist = list()
    #list中可以混合类型, 插入值
    mylist.append('string')
    mylist.append(25)
    #插入到指定索引
    mylist.insert(index,var)
    
    查看最后一个元素
    print mylist[-1]
    
    mylist.pop(var)      #返回最后一个元素,并从list中删除之
    mylist.remove(var)   #删除第一次出现的该元素
    mylist.count(var)    #该元素在列表中出现的个数
    mylist.index(var)    #该元素的位置,无则抛异常 
    mylist.extend(list)  #追加list,即合并list到L上
    mylist.sort()        #排序
    mylist.reverse()     #倒序
    
    #删除
    del mylist[1]    #删除指定下标的元素
    del mylist[1:3]  #删除指定下标范围的元素

    判断列表为空,List和Tuple一样

    def is_empty(tuple):
        if tuple:
            print "not empty"
        else:
            print "is empty"

    元组 Tuple

    Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它。

    Tuple 与 list 的相同之处

    1. 定义 tuple 与定义 list 的方式相同, 除了整个元素集是用小括号包围的而不是方括号。
    2. Tuple 的元素与 list 一样按定义的次序进行排序。 Tuples 的索引与 list 一样从 0 开始, 所以一个非空 tuple 的第一个元素总是 t[0]
    3. 负数索引与 list 一样从 tuple 的尾部开始计数。
    4. 与 list 一样分片 (slice) 也可以使用。注意当分割一个 list 时, 会得到一个新的 list ;当分割一个 tuple 时, 会得到一个新的 tuple。

    Tuple 不存在的方法

    • 您不能向 tuple 增加元素。Tuple 没有 append 或 extend 方法。
    • 您不能从 tuple 删除元素。Tuple 没有 remove 或 pop 方法。
    • 您不能在 tuple 中查找元素。Tuple 没有 index 方法。
    • 然而, 您可以使用 in 来查看一个元素是否存在于 tuple 中。

    用 Tuple 的好处

    • Tuple 比 list 操作速度快。如果您定义了一个值的常量集,并且唯一要用它做的是不断地遍历它,请使用 tuple 代替 list。
    • 如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换。

    Tuple 与 list 的转换
    Tuple 可以转换成 list,反之亦然。内置的 tuple 函数接收一个 list,并返回一个有着相同元素的 tuple。而 list 函数接收一个 tuple 返回一个 list。从效果上看,tuple 冻结一个 list,而 list 解冻一个 tuple。

    Tuple 的其他应用
    一次赋多值
    >>> v = ('a', 'b', 'e')
    >>> (x, y, z) = v
    解释:v 是一个三元素的 tuple, 并且 (x, y, z) 是一个三变量的 tuple。将一个 tuple 赋值给另一个 tuple, 会按顺序将 v  的每个值赋值给每个变量。

  • 相关阅读:
    Java8 Stream Function
    PLINQ (C#/.Net 4.5.1) vs Stream (JDK/Java 8) Performance
    罗素 尊重 《事实》
    小品 《研发的一天》
    Java8 λ表达式 stream group by max then Option then PlainObject
    这人好像一条狗啊。什么是共识?
    TOGAF TheOpenGroup引领开发厂商中立的开放技术标准和认证
    OpenMP vs. MPI
    BPMN2 online draw tools 在线作图工具
    DecisionCamp 2019, Decision Manager, AI, and the Future
  • 原文地址:https://www.cnblogs.com/cfox/p/3425561.html
Copyright © 2011-2022 走看看