Aby filtrować listę strun przez inną listę ciągów w Pythonie, możemy użyć następującego kodu:

result = [x for x in strings1 if x in strings2]

Ale jak możemy filtrować listę podciągów przez inną listę ciągów? Na przykład:

substrings = ['a', 'b', 'c']
strings = ['_b_', '_c_', '_d_']

Wynik powinien być:

result = ['b', 'c']
1
Dmitry 4 wrzesień 2017, 02:41

2 odpowiedzi

Najlepsza odpowiedź

Możesz użyć czegoś takiego:

[x for x in substrings if [y for y in strings if x in y]]


In [1]: substrings = ['a', 'b', 'c']

In [2]: strings = ['_b_', '_c_', '_d_']

In [3]: [x for x in substrings if [y for y in strings if x in y]]
Out[3]: ['b', 'c']
3
Dekel 3 wrzesień 2017, 23:45

Elegancki sposób, aby to osiągnąć, jest za pomocą przy użyciu

Anonymous 14 styczeń 2018, 21:14