Έλεγχος αν ένα στοιχείο λίστας Python περιέχει ένα αλφαριθμητικό μέσα σε ένα άλλο αλφαριθμητικό

Έχω μια λίστα:

my_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']

και θέλω να αναζητήσω στοιχεία που περιέχουν τη συμβολοσειρά 'abc'. Πώς μπορώ να το κάνω αυτό;

if 'abc' in my_list:

θα ελέγξει αν το 'abc' υπάρχει στη λίστα αλλά είναι μέρος των 'abc-123' και 'abc-456', το 'abc' δεν υπάρχει μόνο του. Πώς μπορώ λοιπόν να πάρω όλα τα στοιχεία που περιέχουν το 'abc' ;

Λύση

Αν θέλετε να ελέγξετε μόνο την παρουσία του abc σε οποιαδήποτε συμβολοσειρά της λίστας, μπορείτε να δοκιμάσετε

some_list = ['abc-123', 'def-456', 'ghi-789', 'abc-456']
if any("abc" in s for s in some_list):
    # whatever

Αν θέλετε πραγματικά να βρείτε όλα τα στοιχεία που περιέχουν abc, χρησιμοποιήστε την εντολή

matching = [s for s in some_list if "abc" in s]
Σχόλια (17)
x = 'aaa'
L = ['aaa-12', 'bbbaaa', 'cccaa']
res = [y for y in L if x in y]
Σχόλια (0)
any('abc' in item for item in mylist)
Σχόλια (0)