>>> 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个
|