zoukankan      html  css  js  c++  java
  • python 字典与集合

    字典

    概念

    字典中的是唯一的,不可以重复。

    值不是唯一的可以重复

    键必须是可哈希对象:

    整数、布尔值、字符串、元组

    列表不是可哈希对象

    创建空字典:

    a={} 或 dict()

    有序性:

    python 3.6之后字典变为有序字典,按照插入顺须排列

    内置函数:

    hash()

    判断一个对象是否可哈希

    返回哈希码或抛出异常

    get()方法

    查找字典中是否存在某个键值,返回None或相应的键值。

    注意

    sum函数用于字典时 返回字典键值的和而不是值的和。

    集合

    若不关心元素顺序,使用集合来存储数据比使用列表效率更高。

    创建空集合

    set() 或 set({})

    注意 :{}是创建一个空字典而不是集合。

    内置函数:

    len()

    返回集合的长度

    max()

    返回集合中最大的值

    min()

    返回集合中最小的值

    运算符:

    in 或not in

    判断与元素是否在集合中

    is 或 is not

    判断两个集合是否为同一个对象

    == 或 !=

    判断两个集合是否包含相同的元素

    <

    判断一个集合是否为另一个集合的真子集

    <=

    判断一个集合是否为另一个集合的子集

    两个集合的并集

    &

    两个集合的交集

    -

    差集: 指出现在第一个集合但不出现在第二个集合的元素

    ^

    对称差集 :包含这两个集合共有元素之外所有元素的新集合。

    方法:

    issubset()/isuperset()

    判断子集/超集

    union()

    实现集合合并

    intersection()

    实现集合交集

    difference()

    实现集合差集操作

    symmetric_difference()

    实现集合对称差集操作

    遍历集合

    使用for语句:

    for value in set:
    

    注意 :集合不是序列类型,不能通过下标或切片操作来访问集合中的元素。

    集合解析

    set1={expr for iter_var in iterable}
    
    example:
    set1={value for value in range(0,11,2)}
    set1={0,2,4,6,8,10}
    

    首先循环iterable中的内容,每一次循环都吧iterable中的相应内容放到iter_var中,再在expr中应用该内容,最后用expr的值生成一个集合。

    set1={expr for iter_var in iterable if cond_expr}
    
    example:
    set2={0.5*value for value in set1 if value >2 }
    set2={2,3,4,5}
    
    

    加入了判断语句

    向可变集合添加元素

    add(x)方法

    将元素x添加到可变集合中

    update()方法

    用两个集合的并集更新第一个集合

    intersection_update()方法

    用两个集合的交集更新第一个集合

    difference_update()方法

    用两个集合的差集更新第一个集合

    symmetric_difference_update()方法

    用两个集合的对称差集更新第一个集合

    从可变集合删除元素

    pop()方法

    从可变集合中删除并返回一个元素。若可变集合为空集合,则抛出KeyError异常。

    remove(x)方法

    从可变集合中删除元素x,若可变集合中元素x不存在,则抛出KeyError异常。

    discard() 方法

    从可变集合中删除元素x,若可变集合中元素x不存在,则不做任何事情。

    clear() 方法

    删除集合中的所有元素

    del语句

    删除整个集合

    set1={1,2,3}
    del set1
    print(set1)
    
    NameError: name 'set1' is not defined
    
  • 相关阅读:
    spring中的异步事件
    spring中的事件 applicationevent 讲的确实不错
    freemark2pdf
    使用Ajax生成的Excel文件并下載
    1.智帮校园App功能概况
    MVC4 Controller器同名问题
    MVC 数据验证
    补丁惹的祸-ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService
    .Net MVC4 加.html后缀报404问题
    VS2012常用快捷建(必备)
  • 原文地址:https://www.cnblogs.com/lihahahahaji/p/13996429.html
Copyright © 2011-2022 走看看