1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| li1 = [['4229.0'], ['4099.0', '4100.0'], ['7861.0'], ['9896.0'], ['4505.0', '9948.0', '9956.0'], ['3729.0', '8473.0'],
['1673.09','5678.098','345.84','6666.77','98.4476'],['233,56.789','8912.3','897.90'],['8796.78','0.876'],['874553.90'],
['3452.8754','98342.86451','98.8306'],['647.98'',0.785','987.102'],['784.9'],
['76453.9084','895364','6666.77','98333.90554','98331.23','46653.7766','5.66788','66.7744','3344.5544','54'],
['784555','3833.94','344.23','4556.980','123.42'],['87533.871','8273654.809','6666.77','9344.89']]
li2 = [['987.902','2665.12','234.876'],['78663.8234','12.308','4436.902','0.763'],
['647.902','988363.90'],['8643']]
li3 = [['7200.80','23.4'],['632.9011'],['6534.98','23.0664','6666.77'],['72.34','120.2','34','18772.32']]
tab = {'k1':li1,'k2':li2,'k3':li3}
from timeit import Timer
def enum(id_tab,pur_nb):
position=[]
for value in id_tab.values():
rec = ''
for (i,item) in enumerate(value):
if pur_nb in item:
rec = i+1
break
position.append(rec)
return position
def xrang(id_tab,pur_nb):
position=[]
for k in id_tab:
rec = ''
for i in xrange(len(id_tab[k])):
if pur_nb in id_tab[k][i]:
rec = i+1
break
position.append(rec)
return position
def xralia(id_tab,pur_nb):
position=[]
for k in id_tab:
lik = id_tab[k]
rec = ''
for i in xrange(len(id_tab[k])):
if pur_nb in lik[i]:
rec = i+1
break
position.append(rec)
return position
def licomp(id_tab,pur_nb):
position=[]
for k in id_tab:
lik = id_tab[k]
rec = ''
lu = [sli for sli in lik if pur_nb in sli]
if lu:
position.append([ lik.index(sli)+1 for sli in lu ])
else:
position.append('')
return position
def aff(tu):
print str(min(tu))[0:5],' ',str(sum(tu)/len(tu))[0:5],' ',str(max(tu))[0:5],' ',round(100*(sum(tu)/len(tu)-min(tu))/min(tu),1),'%',
print enum(tab,'6666.77')
print xrang(tab,'6666.77')
print xralia(tab,'6666.77')
print licomp(tab,'6666.77')
repet = 7
iterat = 10000
tenum = Timer("enum(tab,'6666.77')","from __main__ import enum,tab").repeat(repet,iterat)
txrang = Timer("xrang(tab,'6666.77')","from __main__ import xrang,tab").repeat(repet,iterat)
txralia = Timer("xralia(tab,'6666.77')","from __main__ import xralia,tab").repeat(repet,iterat)
tlicomp = Timer("licomp(tab,'6666.77')","from __main__ import licomp,tab").repeat(repet,iterat)
print 'minimum moyenne maximum (moy-min)/min '
aff(tenum)
print ' methode avec enumerate'
aff(txrang)
print ' methode avec xrange'
aff(txralia)
print ' methode avec xrange et alias'
aff(tlicomp)
print ' methode avec list comprehension' |
Partager