• slice.indices()/collections.Counter笔记


    关于slice.indices()

    >>> help(slice)
    Help on class slice in module builtins:
    
    class slice(object)
    | slice(stop) # 如果只有一个参数,那么参数表示为结束的下标
    | slice(start, stop[, step]) # 如果有两个参数,那么代表开始下标和结束下标
    .....

    indices()的使用,能够从新定义截取的最大长度

    >>> a
    'HelloWorld!!!'
    >>> b = slice(0, 50, 2)
    >>> b
    slice(0, 50, 2)
    >>> b.indices(len(a)) # 将最大的长度更改为len(a)
    (0, 13, 2)

    关于collections.Counter用来统计数据

    # Counter()统计数据

    >>> a
    ['one', 'two', 'three', 'two', 'three', 'three']
    >>> from collections import Counter
    >>> a = Counter(a)
    >>> a
    Counter({'three': 3, 'two': 2, 'one': 1})

    # 使用element()来显示Counter()里面的全部内容
    # 注意下面使用a和a.elements()遍历的区别

    >>> from collections import Counter
    >>> a = Counter(a=4, b=2, c=1) # 构建一个a = [a, a ,a, a, b, b, c]
    >>> a
    Counter({'a': 4, 'b': 2, 'c': 1})

    # 值得注意的是,现在a是collections.Counter,但是可以理解为一个{'a': 4, 'b': 2, 'c': 1}字典,他可以想字典一样使用a.items()返回key-value(注意这里说成字典只是为了理解)

    >>> for i in a:
    ... print(i)
    ...
    a
    b
    c


    # 使用a.element()为“itertools.chain”的一个迭代器,返回的是迭代器里面的全部内容,其内容可以看成为“[a, a ,a, a, b, b, c]”

    >>> for i in a.elements():
    ... print(i)
    ...
    a
    a
    a
    a
    b
    b
    c


    # 使用most_common(n)返回元素出现最高的n个元素,n如果不写那么就会返回全部的元素

    >>> a
    Counter({'a': 4, 'b': 2, 'c': 1})
    >>> a.most_common(1) # 返回出现最多的一个
    [('a', 4)]


    # 使用subtract()计算两个Counter()差值(也叫计数),,将其映射到前面的Counter(),输出可以是负值

    >>> a = Counter(a=10, b=20, c=5)
    >>> b = Counter(a=1, b=12, c=7)
    >>> a.subtract(b)
    >>> a
    Counter({'a': 9, 'b': 8, 'c': -2})


    # 使用update()进行两个Counter()进行求和,将其映射到前面的Counter()(结果和"a+b"相同,但是意义不同)

    >>> a = Counter(a=10, b=20, c=5)
    >>> b = Counter(a=1, b=12, c=7)
    >>> a.update(b)
    >>> a
    Counter({'b': 32, 'c': 12, 'a': 11})

    # ‘+’将两个Counter()相加,但是a仍然是a,b仍然是b,组成一个新的Counter()返回

    >>> a = Counter(a=10, b=20, c=5)
    >>> b = Counter(a=1, b=12, c=7)
    >>> a + b
    Counter({'b': 32, 'c': 12, 'a': 11})

    # ‘-’将两个Counter()相比较,不会产生负值(只有大于0部分),组成一个新的Counter()返回

    >>> a - b
    Counter({'a': 9, 'b': 8})

    # ‘&’获取两个Counter()中的最小值,组成一个新的Counter()返回

    Counter({'b': 12, 'c': 7, 'a': 1})
    >>> a&b
    Counter({'b': 12, 'c': 5, 'a': 1})


    # ‘|’获取两个Counter()中的最大值,组成一个新的Counter()返回

    >>> a | b
    Counter({'b': 20, 'a': 10, 'c': 7})
  • 相关阅读:
    MySQL------Navicat安装与激活
    MySQL------如何将SQLServer文件数据迁移到MySQL
    WinForm------如何跳转另一个窗口,同时关闭当前窗口
    C#------如何判断输入的是否为纯数字
    WinForm------GridControl显示每行的Indicator中的行号
    WinForm------给GridControl添加搜索功能
    WinForm------分页控件dll下载地址
    WinForm------ToolTipController与GridControl的连用
    利用IE/FF的不同识别CSS来使用浏览器兼容问题
    互换两条记录中的字段值方法(有待测试,,)
  • 原文地址:https://www.cnblogs.com/namejr/p/9955663.html
Copyright © 2020-2023  润新知