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
| from functools import partial
datas= (
[1, 8, "123", "456"],
[1, 8, "231", "545"],
[1, 8, "131", "545"],
[1, 8, "321", "456"],
) * 3 # je suppose qu'en fait, tu lis/charge datas ligne a ligne
def traiter(ligne, col : int, results : list):
key = ''.join(sorted(str(ligne[col])))
if key in results:
print("\t#", key,"==",ligne[col], "déjà traité")
else:
results[key] = True # ou resultat d'un calcul ?
# print(" traiter:",key, "->", ligne)
yield key, ligne
results = {}
# ou, plus réaliste, appeler "traiter()" à chaque chargement d'une ligne
for a_traiter in map(partial(traiter, col=2, results=results), datas):
try:
key, a_traiter = next(a_traiter)
print(a_traiter, "clé unique", key)
#TODO traitement
except StopIteration:
pass |
Partager