{} Opérations des séquences (sauf
modification) applicablesnumbers = {42, -2, 0, 7, 11} print(numbers) # {0, 42, 11, -2, 7} print(len(numbers)) # 5 print(60 in numbers) # False print(type(numbers)) # <class 'set'> for element in numbers: print(element)
set()# {0, 42, 84, 21, 63} S = {n for n in range(100) if n % 3 == 0 and n % 7 == 0} # {0, 42, 12, -1} A = set([12, 42, 0, 12, 0, -1, 0]) # {'!', 'C', 'i', 'c', 'o', 'r'} B = set('Cocorico!')
add et
removeS = {1, 2, 3, 4} S.remove(1) # {2, 3, 4} S.remove(2) # {3, 4} S.add(5) # {3, 4, 5}
A = {1, 2, 3, 4} B = {3, 4, 5} print(A - B) # {1, 2} (différence) print(A & B) # {3, 4} (intersection) print(A | B) # {1, 2, 3, 4, 5} (union)
# L'ensemble des sous-ensembles de {1, 2, 3} A = {{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
frozensetfrozenset représente un ensemble non
modifiable Les opérations des ensembles (sauf
modification) sont applicablesset dont les éléments sont
des frozenset# L'ensemble des sous-ensembles de {1, 2, 3} A = { frozenset(), frozenset({1}), frozenset({2}), frozenset({3}), frozenset({1, 2}), frozenset({1, 3}), frozenset({2, 3}), frozenset({1, 2, 3}) }
S = {1, 2, 3} # avec un for def sumElements(S): sum = 0 for elem in S: sum += elem return sum print(sumElements(S)) # 6 # avec la fonction sum print(sum(S)) # 6
S = {1, 24, -2, 99, 16} # avec un for def maxElement(S): max = float("-inf") for elem in S: if elem > max: max = elem return max print(maxElement(S)) # 99 # avec la fonction max print(max(S)) # 99
{} Opérations des séquences (sauf
indices) applicablesphone = {'Quentin': 8723, 'Cédric': 2837, 'Nathalie': 4872} print(phone) # {'Quentin': 8723, 'Cédric': 2837, # 'Nathalie': 4872} print(len(phone)) # 3 print('Cédric' in phone) # True print(type(phone)) # <class 'dict'>
{}
Attention à ne pas confondre avec l’ensemble vide# {1: 1, 3: 9, 9: 81, 5: 25, 7: 49} square = {n : n ** 2 for n in range(1,10) if n % 2 != 0} # {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'F': 70} mapping = {chr(i): i for i in range(65, 71)}
del= : provoque une erreur
(accès)= : ajoute une paire clé-valeur au
dictionnaire (assignation)price = {"lemon": 0.85, "pear": 1} price['lemon'] = 0.90 # {"lemon": 0.90, "pear": 1} price['apple'] = 1.00 # {"lemon": 0.90, "pear": 1, "apple": 1} del(price['pear']) # {"lemon": 0.90, "apple": 1}
keys(), aux paires avec
items() et aux valeurs avec la méthode
values() Renvoient de séquences que l’on peut
convertir en listeprint(list(price.keys())) # ['lemon', 'pear', 'apple'] print(list(price.items())) # [('lemon', 0.9), ('pear', 1.0), ('apple', 1.0)] print(list(price.values()))# [0.9, 1.0, 1.0] # Parcours des clés explicite for fruit in price.keys(): print(fruit, price[fruit], sep=' : ') # Parcours des clés implicite for fruit in price: print(fruit, price[fruit], sep=' : ') # Parcours des clés et valeurs for key, value in price.items(): print(key, value, sep=' : ') # Parcours des valeurs seulement for value in price.values(): print(value)
in# Stockage d'informations d'étudiants avec recherche par matricule efficace students = { "11111": {"firstname": "Peter", "lastname": "Parker"}, "11112": {"firstname": "Sarah", "lastname": "Connor"}, } # Stockage d'informations d'étudiants avec importance de l'ordre students = [ {"matricule": "11111", "firstname": "Peter", "lastname": "Parker"}, {"matricule": "11112", "firstname": "Sarah", "lastname": "Connor"}, ]
L est inconnu
def sum(T: tuple[int, ...]): ...
def fun(D: dict[str, int]): D['un'] = 1
Hashable)from typing import Hashable, Any def add_key_value(D: dict, k: Hashable, v: Any): D[k] = v
Any accepte n’importe quoi.def sum(x: str | bool): ...
None est acceptéfrom typing import Optional def sum(x: Optional[int]): ...
def sum(x: int | None): ...
def sum(L: list[int]) -> int: res = 0 for elem in L: res += elem return res
docstringdocstring en
début de fonction avec des triples ' ou "