zoukankan      html  css  js  c++  java
  • 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})
  • 相关阅读:
    faster with MyISAM tables than with InnoDB or NDB tables
    w-BIG TABLE 1-toSMALLtable @-toMEMORY
    Indexing and Hashing
    MEMORY Storage Engine MEMORY Tables TEMPORARY TABLE max_heap_table_size
    controlling the variance of request response times and not just worrying about maximizing queries per second
    Variance
    Population Mean
    12.162s 1805.867s
    situations where MyISAM will be faster than InnoDB
    1920.154s 0.309s 30817
  • 原文地址:https://www.cnblogs.com/namejr/p/9955663.html
Copyright © 2011-2022 走看看