如何过滤掉Python3.x中包含无效字符的列表元素?
How to filter out list elements that contain invalid characters in Python 3.x?
我正在 Python 3.x 中编写一个函数,它将字符串变量列表和有效字符列表作为参数,return 包含原始元素的过滤列表仅由有效字符组成的列表。我想我可以使用两个嵌套的 For 循环遍历列表元素然后遍历给定元素的每个字符来获得结果,但我想知道是否有更有效的方法使用 Python 获得此结果方法或功能。
对于以下两个列表:
valid_characters = ['A','B','C']
my_list = ['abcde','AbCB','ABCBA','XYZ','CBCBB','CABzBAC']
函数会return过滤列表['ABCBA','CBCBB']
您可以将 valid_characters
转换为集合,以便通过测试集合是否是字符串中字符的超集来有效地确定字符串是否完全由集合中的字符组成:
valid_set = set(valid_characters)
print([s for s in my_list if valid_set.issuperset(s)])
这输出:
['ABCBA', 'CBCBB']
我正在 Python 3.x 中编写一个函数,它将字符串变量列表和有效字符列表作为参数,return 包含原始元素的过滤列表仅由有效字符组成的列表。我想我可以使用两个嵌套的 For 循环遍历列表元素然后遍历给定元素的每个字符来获得结果,但我想知道是否有更有效的方法使用 Python 获得此结果方法或功能。
对于以下两个列表:
valid_characters = ['A','B','C']
my_list = ['abcde','AbCB','ABCBA','XYZ','CBCBB','CABzBAC']
函数会return过滤列表['ABCBA','CBCBB']
您可以将 valid_characters
转换为集合,以便通过测试集合是否是字符串中字符的超集来有效地确定字符串是否完全由集合中的字符组成:
valid_set = set(valid_characters)
print([s for s in my_list if valid_set.issuperset(s)])
这输出:
['ABCBA', 'CBCBB']