0
votes

Vérifiez si l'identifiant dans la chaîne existe dans une autre liste

Je suis nouveau dans Python et j'ai vraiment besoin de votre aide.

J'ai deux listes:

  1. Une liste avec les noms de fichiers mp3 (mp3list):

"Artiste1 - MySongName_id11111.mp3

"Artiste2 - SongName_id2231.mp3

"Artiste3 - SongWwhat_id1623.mp3

  1. Une liste avec des identifiants:

11111

2231

1623

4523

Pour chaque élément de la liste mp3, je veux vérifier si le nom du fichier mp3 contient un identifiant de la deuxième liste.

Par exemple. Si Artist1 - MySongName_id11111.mp3 contient 11111 de la deuxième liste, alors faites quelque chose.


0 commentaires

3 Réponses :


2
votes
for i in ids:
  for name in mp3list:
    if str(i) in name:
      # do something
note that this will do something for the same name twice if it happens to have multiple ids in it;

i'm not sure if that's what you want.

3 commentaires

Il vaut probablement mieux ne pas utiliser id comme nom de variable, car il masque la fonction intégrée id () .


Je suis convaincu à 100% que ce ne sera pas un problème ici.


Pour cette question spécifique, vous avez probablement raison. Mais ce n'est pas un effort supplémentaire, vous pouvez donc aussi bien utiliser un nom qui ne posera pas de problèmes futurs à quelqu'un d'autre qui trouve cette réponse et l'adapte à son problème spécifique.



4
votes

Première liste en boucle simple et création de certaines conditions et chaînes de fractionnement

    for i in artists:
        if int(i.split("id", 1)[1][:-4]) in idlist:
            # Do Any You Want


0 commentaires

1
votes

Vous pouvez utiliser le module re de python pour extraire le chiffre du nom de la chanson.

import re
for i in list_of_mp3:
    replaced_string = re.sub(r'.+id', '', i)[:-4]
    if replaced_string in idx:
        print(f'{i} is in idx')


0 commentaires