4 votes

Liste Python des sous-chaînes dans une liste de chaînes de caractères

Je voudrais savoir si une liste de sous-chaînes est contenue dans une liste. Par exemple, j'ai :

    string_list = ['item1', 'item2', 'subject3', 'subject4']

et liste de sous-chaînes

    substrings = ['item', 'subject']

Je voudrais savoir si 'item' ou 'subject' sont inclus dans un élément de string_list. Individuellement, je ferais quelque chose comme :

    any('item' in x for x in string_list)

Cela fonctionne pour une seule sous-chaîne, mais j'aimerais trouver un moyen élégant de rechercher les deux chaînes dans la liste des sous-chaînes.

3voto

Roman Pekar Points 31863
any(y in x for x in string_list for y in substrings)

1voto

Moses Koledoye Points 60613

Puisque les sous-chaînes sont en fait au début, vous pouvez utiliser str.startswith qui peut prendre un tuple de préfixes :

any(x.startswith(('item', 'subject')) for x in string_list)

1voto

Ajax1234 Points 42210

Vous pouvez essayer ceci :

string_list = ['item1', 'item2', 'subject3', 'subject4']

substrings = ['item', 'subject']

any(any(b in i for b in substrings) for i in string_list)

Sortie :

True

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X