• python(set、dict)


    一、集合

    它的元素是唯一的,并无序的。

    1、集合定义

    s = set()

    s = {1, 2, 3}

    2、集合的方法

    update版本的集合运算是在原集合上进行修改,返回值为None。

    • add()表示增加一个元素到集合。当添加一个已经存在的元素时,不会抛出异常。可hash的可以作为集合的元素,不可hash(list,set,bytearray dict)的不可以作为集合的元素。
    • update()表示增加一个可迭代对象。
    • remove()表示从集合中删除一个存在的元素,否则抛出一个KeyError异常。
    • discard()表示从集合中删除一个元素,当元素不存在时不抛出异常。
    • pop()表示从集合中随机返回一个元素,并从集合中删除此元素。当删除一个空集合时,抛出一个KeyError异常。
    • clear()表示清空所有元素。
    • difference()表示不在另一个集合的所有元素,返回一个新集合。
    • intersection()表示两个集合的交集,返回一个新集合。
    • union()表示两个集合的并集,返回一个新集合。
    • symmetric_difference()表示返回两个集合不相交的元素,返回一个新集合。
    • difference_update()表示在原集合修改,只保留第一个集合不相交的元素。
    • intersection_update()表示在原集合修改,保留两个集合的相同元素。
    • issuperset()表示是否为超集。
    • issubset()表示是否为子集。
    • isdisjoint()表示两个集体不相交。

    二、字典

    字典是一个键值对结构。它的Key必须是可hash的值并且是唯一的,value可以是任意的值。

    1.字典定义

    dt = dict()

    dt = {}

    2.下标操作

    dt = {'a':2,'b':3}

    dt['c']=4

    3.字典的方法

    • update()表示增加元素,如果增加的key相同是就修改原来key的值。它的参数可以是以下几种情况:字典、由二元组构成的可迭代对象、关键字参数。
    dt = {'a':2,'b':3}
    dt['c'] = 4
    
    dt.update([('g',3),('h',2)])
    dt.update({'f':3,'e':2})
    dt.update(u=22)
    print(dt)
    #结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
    
    • pop()表示从字典中删除指定的key,如果key不存在就抛出keyError异常,但可以指定默认值时则不抛出异常。
    dt = {'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
    d = dt.pop('gg',-2)
    print(d)
    print(dt)
    #d结果:-2
    #dt结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
    • popitem()表示从字典中随机删除一个key,并返回一个键值对的元组。如果删除一个空字典时抛出一个KeyError异常。
    dt = {'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2, 'u': 22}
    d = dt.popitem()
    print(d)
    print(dt)
    #d结果:('u', 22)
    #dt结果:{'a': 2, 'b': 3, 'c': 4, 'g': 3, 'h': 2, 'f': 3, 'e': 2}
    
    • clear()表示清空字典所有键值对。
    • get()表示访问指定键的值,并可以给默认值。
    • setdefault()表示可以为某个key指定默认值。

    三、字典的应用

    • 字典可能通过keys()方法返回所有keys,也可以通过values()方法返回所有的值。
    • 用len()方法统计字典的长度。

    1、如何遍历一个字典?

    dt = {'a':1,'b':2,'c':3}
    
    for k in dt.keys():
        print('{}=>{}'.format(k,dt[k]),end=' ')
    
    #结果:a=>1 b=>2 c=>3 
    
    dt = {'a':1,'b':2,'c':3}
    
    for k,v in dt.items():
        print('{}=>{}'.format(k,v),end=' ')
    #结果:a=>1 b=>2 c=>3

    2、enumerate用法

    enumerate()是python的内置函数,并返回的是一个enumerate对象。对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

    lt = [1, 2, 3, 4, 5, 6]
    
    for k,v in enumerate(lt):
        print('{}=>{}'.format(k,v),end=' ')
    
    #结果:0=>1 1=>2 2=>3 3=>4 4=>5 5=>6 
    

    enumerate还可以接收第二个参数,用于指定索引起始值。

    lt = [1, 2, 3, 4, 5, 6]
    
    for k,v in enumerate(lt,1):
        print('{}=>{}'.format(k,v),end=' ')
    
    #结果:1=>1 2=>2 3=>3 4=>4 5=>5 6=>6 
    

    3、OrderedDict的用法

    collections模块里有一个OrderedDict,它可以记住字典中插入元素的先后顺序。

    from collections import OrderedDict
    
    ot = OrderedDict()
    ot['b']=2
    ot['a']=1
    ot['e']=4
    ot['1']=1
    ot['c']=3
    ot['2']=2
    
    for k,v in ot.items():
        print('{}=>{}'.format(k,v),end=' ')
    
    lt = {'a', 'b', 'c', 'd'}
    
    print(dict.fromkeys(lt,True))
    
    #结果:{'a': True, 'b': True, 'd': True, 'c': True}
  • 相关阅读:
    循环神经网络(LSTM和GRU)(1)
    threading包的例子和queue包的例子
    xgboost调参
    理解 Python 中的 *args 和 **kwargs
    TFRecords文件的生成和读取(1)
    tensorflow函数介绍(4)
    python其他篇(1)
    python实现Restful服务(基于flask)(2)
    开源多线程性能测试工具-sysbench
    MySQL 8.0.0 版本发布,亮点都在这了!
  • 原文地址:https://www.cnblogs.com/orna/p/8331486.html
Copyright © 2020-2023  润新知