[英]How to filter out list elements based on if they contain a substring from another list in Python
[英]How to filter out list elements that contain invalid characters in Python 3.x?
我在Python 3.x中編寫一個函數,它將一個字符串變量列表和一個有效字符列表作為參數,並返回一個過濾列表,其中包含僅由有效字符組成的原始列表元素。 我想我可以使用兩個嵌套的For循環遍歷列表元素然后遍歷給定元素的每個字符來實現結果,但我想知道是否有更有效的方法來使用Python方法或函數獲得此結果。
對於以下兩個列表:
valid_characters = ['A','B','C']
my_list = ['abcde','AbCB','ABCBA','XYZ','CBCBB','CABzBAC']
該函數將返回已過濾的列表['ABCBA','CBCBB']
您可以將valid_characters
轉換為一個集合,以便通過測試該集合是否是字符串中字符的超集來有效地確定字符串是否純粹由集合中的字符組成:
valid_set = set(valid_characters)
print([s for s in my_list if valid_set.issuperset(s)])
這輸出:
['ABCBA', 'CBCBB']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.