• python标准库学习4


    >>> os.environ["HOME"]
    'C:\\Users\\Administrator'
    
    >>> os.getcwd() #获得当前的目录
    'D:\\new'
    >>> os.getenv("QTDIR")  #获取环境变量的值
    'D:\\vs2010-qt-src-4.7.4\\qt-src-4.7.4'
    os.putenv(varname, value)  #设置环境变量的值
    
    os.mkdir(path[, mode])
    >>> os.mkdir("aa")
    >>> os.rmdir("aa")
    >>>os.makedirs("aa\\bb\\cc") 多级目录
    os.removedirs(path)¶
    os.remove("d:\\new\\hello.txt")  #删除文件,如果是目录的话,出错
    os.rename("test.txt","a.txt")  
    
    random.randint(a, b)
    Return a random integer N such that a <= N <= b.
    random.choice(seq)
    Return a random element from the non-empty sequence seq. If seq is empty, raises IndexError.
    random.random()
    Return the next random floating point number in the range [0.0, 1.0).
    random.shuffle(x[, random])  随机排序序列
    random.uniform(a, b)¶返回a<=N<=b之间的浮点数
    random.randrange([start], stop[, step])想当于choice(range(start, stop, step))
    >>> random.random()        # Random float x, 0.0 <= x < 1.0
    0.37444887175646646
    >>> random.uniform(1, 10)  # Random float x, 1.0 <= x < 10.0
    1.1800146073117523
    >>> random.randint(1, 10)  # Integer from 1 to 10, endpoints included
    7
    >>> random.randrange(0, 101, 2)  # Even integer from 0 to 100
    26
    >>> random.choice('abcdefghij')  # Choose a random element
    'c'
    
    >>> items = [1, 2, 3, 4, 5, 6, 7]
    >>> random.shuffle(items)
    >>> items
    [7, 3, 2, 5, 6, 4, 1]
    
    >>> random.sample([1, 2, 3, 4, 5],  3)  # Choose 3 elements
    [4, 1, 5]
    
    >>> datetime.MAXYEAR
    9999
    >>> datetime.MINYEAR
    1
    
    >>> a=datetime.date(2011,2,1)
    >>> a.today()
    datetime.date(2011, 11, 26)
    >>> a.year
    2011
    >>> a.month
    2
    >>> a.day
    1
    
    >>> import time
    >>> from datetime import date
    >>> today = date.today()
    >>> today
    datetime.date(2007, 12, 5)
    >>> my_birthday = date(today.year, 6, 24)
    >>> if my_birthday < today:
    ...     my_birthday = my_birthday.replace(year=today.year + 1)
    >>> my_birthday
    datetime.date(2008, 6, 24)
    >>> time_to_birthday = abs(my_birthday - today)  #计算日期之差
    >>> time_to_birthday.days
    202
    
    >>> datetime.now()   #当前时间
    datetime.datetime(2011, 11, 26, 10, 40, 10, 283000)
    >>> datetime.utcnow()
    datetime.datetime(2011, 11, 26, 2, 40, 34, 809000)
    >>> a=date(2005,7,14)  #日期和时间进行合并
    >>> t=time(12,30,12)
    >>> datetime.combine(a,t)
    datetime.datetime(2005, 7, 14, 12, 30, 12)
    >>> dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")
    >>> dt
    datetime.datetime(2006, 11, 21, 16, 30)
    
    >>> from datetime import timedelta, datetime, tzinfo
    >>> class GMT1(tzinfo):
    ...     def __init__(self):         # DST starts last Sunday in March
    ...         d = datetime(dt.year, 4, 1)   # ends last Sunday in October
    ...         self.dston = d - timedelta(days=d.weekday() + 1)
    ...         d = datetime(dt.year, 11, 1)
    ...         self.dstoff = d - timedelta(days=d.weekday() + 1)
    ...     def utcoffset(self, dt):
    ...         return timedelta(hours=1) + self.dst(dt)
    ...     def dst(self, dt):
    ...         if self.dston <=  dt.replace(tzinfo=None) < self.dstoff:
    ...             return timedelta(hours=1)
    ...         else:
    ...             return timedelta(0)
    ...     def tzname(self,dt):
    ...          return "GMT +1"
    ...
    >>> class GMT2(tzinfo):
    ...     def __init__(self):
    ...         d = datetime(dt.year, 4, 1)
    ...         self.dston = d - timedelta(days=d.weekday() + 1)
    ...         d = datetime(dt.year, 11, 1)
    ...         self.dstoff = d - timedelta(days=d.weekday() + 1)
    ...     def utcoffset(self, dt):
    ...         return timedelta(hours=1) + self.dst(dt)
    ...     def dst(self, dt):
    ...         if self.dston <=  dt.replace(tzinfo=None) < self.dstoff:
    ...             return timedelta(hours=2)
    ...         else:
    ...             return timedelta(0)
    ...     def tzname(self,dt):
    ...         return "GMT +2"
    ...
    >>> gmt1 = GMT1()
    >>> # Daylight Saving Time
    >>> dt1 = datetime(2006, 11, 21, 16, 30, tzinfo=gmt1)
    >>> dt1.dst()
    datetime.timedelta(0)
    >>> dt1.utcoffset()
    datetime.timedelta(0, 3600)
    >>> dt2 = datetime(2006, 6, 14, 13, 0, tzinfo=gmt1)
    >>> dt2.dst()
    datetime.timedelta(0, 3600)
    >>> dt2.utcoffset()
    datetime.timedelta(0, 7200)
    >>> # Convert datetime to another time zone
    >>> dt3 = dt2.astimezone(GMT2())
    >>> dt3     # doctest: +ELLIPSIS
    datetime.datetime(2006, 6, 14, 14, 0, tzinfo=<GMT2 object at 0x...>)
    >>> dt2     # doctest: +ELLIPSIS
    datetime.datetime(2006, 6, 14, 13, 0, tzinfo=<GMT1 object at 0x...>)
    >>> dt2.utctimetuple() == dt3.utctimetuple()
    True
    
    class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
    >>> a=time(10,46,12)
    >>> a.min
    datetime.time(0, 0)
    >>> a.max
    datetime.time(23, 59, 59, 999999)
    >>> a.hour
    10
    >>> a.minute
    46
    >>> a.second
    12
    >>> a.microsecond
    0
    
    class collections.Counter([iterable-or-mapping])
    A Counter is a dict subclass for counting hashable objects.
    >>> # Tally occurrences of words in a list
    >>> cnt = Counter()
    >>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
    ...     cnt[word] += 1
    >>> cnt
    Counter({'blue': 3, 'red': 2, 'green': 1})
    
    >>> # Find the ten most common words in Hamlet
    >>> import re
    >>> words = re.findall('\w+', open('hamlet.txt').read().lower())
    >>> Counter(words).most_common(10)
    [('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
     ('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]
    
    >>> c = Counter(['eggs', 'ham'])
    >>> c['bacon']                              # count of a missing element is zero
    0
    >>> c['sausage'] = 0                        # counter entry with a zero count
    >>> del c['sausage']                        # del actually removes the entry
    
    >>> c = Counter(a=4, b=2, c=0, d=-2)
    >>> list(c.elements())
    ['a', 'a', 'a', 'a', 'b', 'b']
    
    most_common([n])  #出现次数最多的n个
    >>> Counter('abracadabra').most_common(3)
    [('a', 5), ('r', 2), ('b', 2)]
    
    >>> c = Counter(a=4, b=2, c=0, d=-2)
    >>> d = Counter(a=1, b=2, c=3, d=4)
    >>> c.subtract(d)
    Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})
    
    >>> c = Counter(a=4, b=2, c=0, d=-2)
    >>> sum(c.values())  # total of all counts
    4
    >>> list(c)
    ['a', 'c', 'b', 'd']
    >>> set(c)
    set(['a', 'c', 'b', 'd'])
    >>> dict(c)
    {'a': 4, 'c': 0, 'b': 2, 'd': -2}
    >>> c.items()
    [('a', 4), ('c', 0), ('b', 2), ('d', -2)]
    >>> c.most_common()[:-2:-1]    # c.most_common()[:-n:-1] n least #common elements
    
    [('d', -2)]
    >>> c+=Counter()
    >>> c
    Counter({'a': 4, 'b': 2})
    >>> c.clear()
    >>> c
    Counter()
    
    >>> c = Counter(a=3, b=1)
    >>> d = Counter(a=1, b=2)
    >>> c + d                       # add two counters together:  c[x] + d[x]
    Counter({'a': 4, 'b': 3})
    >>> c - d                       # subtract (keeping only positive counts)
    Counter({'a': 2})
    >>> c & d                       # intersection:  min(c[x], d[x])
    Counter({'a': 1, 'b': 1})
    >>> c | d                       # union:  max(c[x], d[x])
    Counter({'a': 3, 'b': 2})
    
    >>> from collections import deque
    >>> d = deque('ghi')                 # make a new deque with three items
    >>> for elem in d:                   # iterate over the deque's elements
    ...     print elem.upper()
    G
    H
    I
    
    >>> d.append('j')                    # add a new entry to the right side
    >>> d.appendleft('f')                # add a new entry to the left side
    >>> d                                # show the representation of the deque
    deque(['f', 'g', 'h', 'i', 'j'])
    
    >>> d.pop()                          # return and remove the rightmost item
    'j'
    >>> d.popleft()                      # return and remove the leftmost item
    'f'
    >>> list(d)                          # list the contents of the deque
    ['g', 'h', 'i']
    >>> d[0]                             # peek at leftmost item
    'g'
    >>> d[-1]                            # peek at rightmost item
    'i'
    
    >>> list(reversed(d))                # list the contents of a deque in reverse
    ['i', 'h', 'g']
    >>> 'h' in d                         # search the deque
    True
    >>> d.extend('jkl')                  # add multiple elements at once
    >>> d
    deque(['g', 'h', 'i', 'j', 'k', 'l'])
    >>> d.rotate(1)                      # right rotation
    >>> d
    deque(['l', 'g', 'h', 'i', 'j', 'k'])
    >>> d.rotate(-1)                     # left rotation
    >>> d
    deque(['g', 'h', 'i', 'j', 'k', 'l'])
    
    >>> deque(reversed(d))               # make a new deque in reverse order
    deque(['l', 'k', 'j', 'i', 'h', 'g'])
    >>> d.clear()                        # empty the deque
    >>> d.pop()                          # cannot pop from an empty deque
    Traceback (most recent call last):
      File "<pyshell#6>", line 1, in -toplevel-
        d.pop()
    IndexError: pop from an empty deque
    
    >>> d.extendleft('abc')              # extendleft() reverses the input order
    >>> d
    deque(['c', 'b', 'a'])
    
    def tail(filename, n=10):
        'Return the last n lines of a file'
        return deque(open(filename), n)
    
    def moving_average(iterable, n=3):
        # moving_average([40, 30, 50, 46, 39, 44]) --> 40.0 42.0 45.0 43.0
        # http://en.wikipedia.org/wiki/Moving_average
        it = iter(iterable)
        d = deque(itertools.islice(it, n-1))
        d.appendleft(0)
        s = sum(d)
        for elem in it:
            s += elem - d.popleft()
            d.append(elem)
            yield s / float(n)
    
    def delete_nth(d, n):
        d.rotate(-n)
        d.popleft()
        d.rotate(n)
    
    class collections.defaultdict([default_factory[, ...]])
    >>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
    >>> d = defaultdict(list)
    >>> for k, v in s:
    ...     d[k].append(v)
    ...
    >>> d.items()
    [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
    
    >>> d = {}
    >>> for k, v in s:
    ...     d.setdefault(k, []).append(v)
    ...
    >>> d.items()
    [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
    
    >>> s = 'mississippi'
    >>> d = defaultdict(int)
    >>> for k in s:
    ...     d[k] += 1
    ...
    >>> d.items()
    [('i', 4), ('p', 2), ('s', 4), ('m', 1)]
    
    >>> s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)]
    >>> d = defaultdict(set)
    >>> for k, v in s:
    ...     d[k].add(v)
    ...
    >>> d.items()
    [('blue', set([2, 4])), ('red', set([1, 3]))]
    
    >>> def heapsort(iterable):
    ...     'Equivalent to sorted(iterable)'
    ...     h = []
    ...     for value in iterable:
    ...         heappush(h, value)
    ...     return [heappop(h) for i in range(len(h))]
    ...
    >>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >>> h = []
    >>> heappush(h, (5, 'write code'))
    >>> heappush(h, (7, 'release product'))
    >>> heappush(h, (1, 'write spec'))
    >>> heappush(h, (3, 'create tests'))
    >>> heappop(h)
    (1, 'write spec')
    
    #coding=utf-8
    #堆的实例
    
    from heapq import heappush, heappop, heappushpop, heapify, heapreplace, nlargest,\
        nsmallest
    
    heap=[]
    
    heappush(heap,"A");
    heappush(heap,"C");
    heappush(heap,"B");
    
    print heap
    
    heappop(heap)   #弹出堆中最小的元素
    print heap
    
    var=heappushpop(heap,"D")  #返回并弹出堆中最小的元素,并且将D压入堆
    print var
    print heap
    
    var=heapreplace(heap,"E")  #返回并弹出堆中最小的元素,并且将D压入堆,
    print var
    print heap
    
    list=[1,2,3,4,5,6,7,8,9,0]
    heapify(list);
    print list
    
    print nlargest(3,list)   #返回堆中最大的3个
    print nsmallest(3,list)  #返回堆中最小的3个
    

      

  • 相关阅读:
    codeforces 图论题目集(持续更新)
    整数快速幂
    Codeforces Codeforces Global Round 5 C2
    POJ 1061
    扩展欧几里德算法(数论)
    Codeforces Round #592 (Div. 2) 1224D
    Codeforces Round #582 (Div. 3) G. Path Queries
    2019 kickstart A轮 B 题
    P3379 【模板】最近公共祖先(LCA)
    bzoj 2002 分块
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2264225.html
Copyright © 2020-2023  润新知