17. Itérer sur
une collection d'objets
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)):!
print plats[i]
18. Itérer sur
une collection d'objets
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)):!
print plats[i]
for plat in plats:!
print plat
20. Itérer en partant de la fin
plats = ['choucroute', 'munster', 'kouglof']
21. Itérer en partant de la fin
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)-1, -1, -1):!
print plats[i]
22. Itérer en partant de la fin
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)-1, -1, -1):!
print plats[i]
for plat in reversed(plats):!
print plat
25. Itérer en maintenant un
indice
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)):!
print i, '-->', plats[i]
26. Itérer en maintenant un
indice
plats = ['choucroute', 'munster', 'kouglof']
for i in range(len(plats)):!
print i, '-->', plats[i]
for i, plat in enumerate(plats):!
print i, '-->', plat
28. Itérer sur deux collections
en même temps
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
29. Itérer sur deux collections
en même temps
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
n = min(len(vins), len(plats))!
for i in range(n):!
print vins[i], '-->', plats[i]
30. Itérer sur deux collections
en même temps
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
n = min(len(vins), len(plats))!
for i in range(n):!
print vins[i], '-->', plats[i]
for name, plat in zip(vins, plats):!
print name, '-->', plat
31. Itérer sur deux collections
en même temps
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
n = min(len(vins), len(plats))!
for i in range(n):!
print vins[i], '-->', plats[i]
for name, plat in zip(vins, plats):!
print name, '-->', plat
for name, plat in izip(vins, plats):!
print name, '-->', plat
32. Itérer sur deux collections
en même temps
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
n = min(len(vins), len(plats))!
for i in range(n):!
print vins[i], '-->', plats[i]
for name, plat in zip(vins, plats):!
print name, '-->', plat
from itertools import izip
for name, plat in izip(vins, plats):!
print name, '-->', plat
34. Itérer selon un ordre de tri
plats = ['choucroute', 'munster', 'kouglof']
35. Itérer selon un ordre de tri
plats = ['choucroute', 'munster', 'kouglof']
for plat in sorted(plats):!
print plat
36. Itérer selon un ordre de tri
plats = ['choucroute', 'munster', 'kouglof']
for plat in sorted(plats):!
print plat
for plat in sorted(plats, reverse=True):!
print plat
43. Itérer sur les clés
d'un dictionnaire
d = {!
'gewurztraminer': ‘kouglof',!
'edelzwicker': ‘munster',!
'riesling': ‘choucroute’,!
}
44. Itérer sur les clés
d'un dictionnaire
d = {!
'gewurztraminer': ‘kouglof',!
'edelzwicker': ‘munster',!
'riesling': ‘choucroute’,!
}
for key in d:!
print key
45. Itérer sur les clés
d'un dictionnaire
d = {!
'gewurztraminer': ‘kouglof',!
'edelzwicker': ‘munster',!
'riesling': ‘choucroute’,!
}
for key in d:!
print key
d = {key: d[key] for key in d if not key.startswith('r')}
47. Itérer sur les clés et les
valeurs d'un dictionnaire
for key in d:!
print key, '-->', d[key]
48. Itérer sur les clés et les
valeurs d'un dictionnaire
for key in d:!
print key, '-->', d[key]
for key, value in d.items():!
print key, '-->', value
49. Itérer sur les clés et les
valeurs d'un dictionnaire
for key in d:!
print key, '-->', d[key]
for key, value in d.items():!
print key, '-->', value
for key, value in d.iteritems():!
print key, '-->', value
51. Construire un dictionnaire
à partir de paires
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
52. Construire un dictionnaire
à partir de paires
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
d = dict(izip(vins, plats))!
{'gewurztraminer': 'kouglof', 'edelzwicker': ‘munster',!
'riesling': 'choucroute'}
53. Construire un dictionnaire
à partir de paires
vins = ['riesling', 'edelzwicker', 'gewurztraminer']!
plats = ['choucroute', 'munster', 'kouglof']
d = dict(izip(vins, plats))!
{'gewurztraminer': 'kouglof', 'edelzwicker': ‘munster',!
'riesling': 'choucroute'}
d = dict(enumerate(vins))!
{0: 'riesling', 1: 'edelzwicker', 2: 'gewurztraminer'}
56. Compter avec des
dictionnaires
plats = ['choucroute', 'munster', 'choucroute', ‘kouglof',!
'munster', 'choucroute']
d = {}!
for plat in plats:!
if plat not in d:!
d[plat] = 0!
d[plat] += 1!
{'kouglof': 1, 'munster': 2, 'choucroute': 3}
57. Compter avec des
dictionnaires
plats = ['choucroute', 'munster', 'choucroute', ‘kouglof',!
'munster', 'choucroute']
d = {}!
for plat in plats:!
if plat not in d:!
d[plat] = 0!
d[plat] += 1!
{'kouglof': 1, 'munster': 2, 'choucroute': 3}
d = defaultdict(int)!
for plat in plats:!
d[plat] += 1
60. Clarifier les appels de fonctions
avec des arguments mots-clés
search(‘#pyconfr', False, 20, True)
61. Clarifier les appels de fonctions
avec des arguments mots-clés
search(‘#pyconfr', False, 20, True)
search(‘#pyconfr', retweets=False, numtweets=20, popular=True)
73. Concaténer des chaînes
vins = ['riesling', 'edelzwicker', 'gewurztraminer',!
'pinot noir', 'pinot gris', 'muscat', 'sylvaner']
s = vins[0]!
for name in vins[1:]:!
s += ', ' + name!
print s
74. Concaténer des chaînes
vins = ['riesling', 'edelzwicker', 'gewurztraminer',!
'pinot noir', 'pinot gris', 'muscat', 'sylvaner']
s = vins[0]!
for name in vins[1:]:!
s += ', ' + name!
print s
print ', '.join(vins)
77. Utiliser des décorateurs pour
factoriser de la logique
def web_lookup(url, saved={}):!
if url in saved:!
return saved[url]!
page = urllib.urlopen(url).read()!
saved[url] = page!
return page
78. Utiliser des décorateurs pour
factoriser de la logique
def web_lookup(url, saved={}):!
if url in saved:!
return saved[url]!
page = urllib.urlopen(url).read()!
saved[url] = page!
return page
@cache!
def web_lookup(url):!
return urllib.urlopen(url).read()
79. Décorateur cache
def cache(func):!
saved = {}!
!
@wraps(func)!
def newfunc(*args):!
if args in saved:!
return newfunc(*args)!
result = func(*args)!
saved[args] = result!
return result!
!
return newfunc
89. Listes en compréhension
et expressions génératrices
result = []!
for i in range(10):!
s = i ** 2!
result.append(s)!
print sum(result)
90. Listes en compréhension
et expressions génératrices
result = []!
for i in range(10):!
s = i ** 2!
result.append(s)!
print sum(result)
print sum([i**2 for i in xrange(10)])
91. Listes en compréhension
et expressions génératrices
result = []!
for i in range(10):!
s = i ** 2!
result.append(s)!
print sum(result)
print sum([i**2 for i in xrange(10)])
print sum(i**2 for i in xrange(10))