Question de base en Python

atho92 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
atho92 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je ne parviens pas à comprendre pourquoi les 2 portions de code suivantes ne mènent pas exactement au même résultat (la liste result est légèrement plus longue dans le 1er cas).

Merci.


Code 1:
result = []
for codestr in string_list_A:
    codes = codestr[1:-1].split(', ')
    for code in codes:
        if code[1:-1] in string_list_B:
            result.append(codestr)


Code 2:
result=[]
[[result.append(codestr) for code in codestr[1:-1].split(',') if code[1:-1] in string_list_B.values] for codestr in  string_list_A]
A voir également:

2 réponses

Jithel Messages postés 843 Date d'inscription   Statut Membre Dernière intervention   171
 
La seule différence que je vois c'est :
string_list_B.values


Tu peux nous donner des exemples d'utilisation ?
0
atho92 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Il y a une première liste de strings (string_list_B) contenant des mots.

Dans la 2e liste de string (string_list_A), chaque string correspond à des mots séparés par une virgule.

L'algo doit looper sur la liste A, splitter les mots en une liste de mots, puis vérifier si l'un des mots de la liste obtenue est contenu dans la liste string_list_B, auquel cas la liste de mots (avant split) est stockée dans une liste result.

Est-ce plus clair? Il y a des redondances mais ça n'est pas grave à ce stade.

Merci.
0