Question de base en Python

Fermé
atho92 Messages postés 2 Date d'inscription mercredi 21 novembre 2018 Statut Membre Dernière intervention 28 novembre 2018 - Modifié le 21 nov. 2018 à 21:43
atho92 Messages postés 2 Date d'inscription mercredi 21 novembre 2018 Statut Membre Dernière intervention 28 novembre 2018 - 28 nov. 2018 à 21:43
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]

2 réponses

Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
21 nov. 2018 à 23:10
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 mercredi 21 novembre 2018 Statut Membre Dernière intervention 28 novembre 2018
28 nov. 2018 à 21:43
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