range(len(x))
En Python, nous utilisons généralement une boucle for
pour parcourir un objet itérable. Une boucle for
en Python utilise une itération basée sur la collection, c'est-à-dire que Python affecte l'élément suivant d'un itérable à la variable de boucle à chaque itération. Le cas d'utilisation habituel d'une boucle for
est le suivant :
values = ["a", "b", "c"] for value in values: print(value) # a # b # c
index = 0 for value in values: print(index, value) index += 1 # 0 a # 1 b # 2 c
ou une autre façon courante de le faire est d'utiliser range(len(x))
:
for index in range(len(values)): value = values[index] print(index, value) # 0 a # 1 b # 2 c
Cependant, il existe un moyen plus simple et plus pythonique d'itérer sur des objets itérables en utilisant enumerate()
. Il est utilisé dans une boucle for
presque de la même manière que vous utilisez la manière habituelle, mais au lieu de mettre l'objet itérable directement après in
la boucle for
, ou de l'utiliser comme range(len(values))
, vous le mettez à l'intérieur les parenthèses de enumerate()
comme indiqué ci-dessous :
for count, value in enumerate(values): print(count, value) # 0 a # 1 b # 2 c
Nous pouvons également définir un argument de start
pour enumerate()
comme indiqué ci-dessous :
for count, value in enumerate(values, start=1): print(count, value) # 1 a # 2 b # 3 c
La fonction enumerate()
renvoie deux variables :
Tout comme les variables de boucle dans une boucle for
, les variables de boucle peuvent être nommées n'importe quoi, par exemple, nous pouvons appeler index
et value
et elles fonctionneront toujours. enumerate()
est plus efficace qu'une boucle for
car elle vous évite d'avoir à vous rappeler d'accéder à la valeur à l'intérieur de la boucle et de l'utiliser correctement, puis n'oubliez pas d'avancer la valeur de la variable de boucle, tout est géré automatiquement par Python .
newList = [ expression(element) for element in oldList if condition ]
# Using list comprehension to iterate through loop List = [character for character in 'HackerNoon'] # Displaying list print(List) # Output # ['H', 'a', 'c', 'k', 'e', 'r', 'N', 'o', 'o', 'n']
sorted()
La fonction Python sorted()
trie les éléments d'un objet itérable dans un ordre spécifique (croissant ou décroissant) et les renvoie sous forme de liste triée. Il peut être utilisé pour trier une séquence (chaîne, tuple, liste) ou une collection (ensemble, dictionnaire, ensemble gelé) ou tout autre itérateur.
La syntaxe de la fonction sorted()
est la suivante :
sorted(iterable, key=None, reverse=False)
La fonction sorted()
prend au maximum trois paramètres :
list_inp = [100, 75, 100, 20, 75, 12, 75, 25] set_res = set(list_inp) print("The unique elements of the input list using set():\n") list_res = (list(set_res)) for item in list_res: print(item)
The unique elements of the input list using set(): 25 75 100 20 12
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("The given list is:", myList) mygen = (element ** 2 for element in myList if element % 2 == 0) print("Elements obtained from the generator are:") for ele in mygen: print(ele)
The given list is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Elements obtained from the generator are: 4 16 36 64 100
.get()
et .setdefault()
La méthode .setdefault()
permet de définir dict[key]=default
si la clé n'est pas déjà dans dict.
La syntaxe de .setdefault()
ressemble à ceci :
dict.setdefault(key, default=None)
Voici un exemple d'extrait de code pour comprendre comment utiliser .setdefault()
:
a_dictionary = {"a": 1, "b": 2, "d": 4} a_dictionary.setdefault("c", 3) print(a_dictionary)
{'a': 1, 'b': 2, 'd': 4, 'c': 3}
La même chose peut également être obtenue en utilisant la méthode .get()
en passant une valeur par défaut pour la clé, comme vous pouvez le voir ci-dessous :
a_dictionary = {"a": 1, "b": 2, "d": 4} print(a_dictionary.get("c", 3)) print(a_dictionary)
3 {'a': 1, 'b': 2, 'd': 4}
collections.Counter
Les collections d'importation rendent les éléments des collections disponibles en tant que :
import collections
from collections import Counter
import collections c = collections.Counter('abcdaab') for letter in 'abcde': print '%s : %d' % (letter, c[letter])
a : 3 b : 2 c : 1 d : 1 e : 0
Comme le nom "f-string" l'indique, ce sont des littéraux de chaîne qui ont un f au début et des accolades contenant des expressions qui seront remplacées par leurs valeurs au moment de l'exécution, puis formatées à l'aide du protocole __format__
.
name = "Eric" age = 74 print(f"Hello, {name}. You are {age}.") # 'Hello, Eric. You are 74.'
.join()
En Python, nous pouvons utiliser la méthode .join()
pour concaténer une liste de chaînes en une seule chaîne. La syntaxe habituelle de cette méthode ressemble à ceci :
'String to insert'.join([List of strings])
Il peut être utilisé de plusieurs façons - si vous utilisez la chaîne vide ““
, [Liste de chaînes] est simplement concaténée, et si vous utilisez une virgule, une chaîne délimitée par des virgules est créée. Lorsque le caractère de saut de ligne \n
est utilisé, un saut de ligne est ajouté après chaque chaîne. Voir l'exemple ci-dessous :
l = ['aaa', 'bbb', 'ccc'] s = ''.join(l) print(s) # aaabbbccc s = ','.join(l) print(s) # aaa,bbb,ccc s = '-'.join(l) print(s) # aaa-bbb-ccc s = '\n'.join(l) print(s) # aaa # bbb # ccc
{**d1, **d2}
(Python 3.5+) Le moyen le plus simple de fusionner des dictionnaires consiste à utiliser l'opérateur de décompression ( **
). La syntaxe de cette méthode ressemble à ceci :
{**dict1, **dict2, **dict3}
d1 = {'k1': 1, 'k2': 2} d2 = {'k3': 3, 'k4': 4} print({**d1, **d2}) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
if x in list
colors = ["red", "green", "blue"] c = "red" # cumbersome and error-prone if c == "red" or c == "green" or c == "blue": print("is main color")
colors = ["red", "green", "blue"] c = "red" # better: if c in colors: print("is main color")