Menu

Question de base en Python

Messages postés
2
Date d'inscription
mercredi 21 novembre 2018
Dernière intervention
28 novembre 2018
-
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]
Afficher la suite 

Votre réponse

2 réponses

Messages postés
647
Date d'inscription
mercredi 20 juin 2018
Dernière intervention
17 janvier 2019
44
0
Merci
La seule différence que je vois c'est :
string_list_B.values


Tu peux nous donner des exemples d'utilisation ?
Commenter la réponse de Jithel
Messages postés
2
Date d'inscription
mercredi 21 novembre 2018
Dernière intervention
28 novembre 2018
0
Merci
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.
Commenter la réponse de atho92