Rédiger du code Python efficace
Logan Thomas
Scientific Software Technical Trainer, Enthought
list, tuple, set, dict, etc.print(), len(), range(), round(), enumerate(), map(), zip(), etc.os, sys, itertools, collections, math, etc.Saisir explicitement une liste de nombres
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Utiliser range() pour créer la même liste
# range(start,stop)
nums = range(0,11)
nums_list = list(nums)
print(nums_list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# range(stop)
nums = range(11)
nums_list = list(nums)
print(nums_list)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Utiliser range() avec un pas
even_nums = range(2, 11, 2)
even_nums_list = list(even_nums)
print(even_nums_list)
[2, 4, 6, 8, 10]
Crée une liste indexée d'objets
letters = ['a', 'b', 'c', 'd' ]
indexed_letters = enumerate(letters)
indexed_letters_list = list(indexed_letters)
print(indexed_letters_list)
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
Permet de préciser une valeur de départ
letters = ['a', 'b', 'c', 'd' ]
indexed_letters2 = enumerate(letters, start=5)
indexed_letters2_list = list(indexed_letters2)
print(indexed_letters2_list)
[(5, 'a'), (6, 'b'), (7, 'c'), (8, 'd')]
Applique une fonction à un objet
nums = [1.5, 2.3, 3.4, 4.6, 5.0]
rnd_nums = map(round, nums)
print(list(rnd_nums))
[2, 2, 3, 5, 5]
map() avec lambda (fonction anonyme)
nums = [1, 2, 3, 4, 5]
sqrd_nums = map(lambda x: x ** 2, nums)
print(list(sqrd_nums))
[1, 4, 9, 16, 25]
Rédiger du code Python efficace