Je suis en train de lire une liste de chaînes, chacune se rapportant à un nom de fichier. Cependant, chaque chaîne est moins l'extension. Je suis venu avec le code suivant:Comment utiliser re pour rechercher des éléments dans une liste dans une autre liste en Python
import re
item_list = ['item1', 'item2']
search_list = ['item1.exe', 'item2.pdf']
matches = []
for item in item_list:
# Match item in search_list using re - I assume this is the best way to do this
regex = re.compile("^"+item+"\.")
for file in search_list:
if regex.match(file):
matches.append((item, file))
En ce qui concerne les matchs en double, je ne suis pas extrêmement inquiet au sujet de deux fichiers être nommé « foo.bar » et « foo.foo.bar ». Cela dit, y a-t-il une meilleure façon de faire cela?
Merci.
Utile pour savoir combien d'éléments dans chacune des deux listes, et à quelle fréquence le code sera appelé. – Will
@Will, je dirais qu'il y aurait des milliers de fichiers dans la liste. La liste devrait être légèrement (5% environ) plus grande que le nombre réel de fichiers dans le répertoire. – Alex