如何过滤掉Python 3.x中包含无效字符的列表元素?

问题描述 投票:4回答:1

我在Python 3.x中编写一个函数,它将一个字符串变量列表和一个有效字符列表作为参数,并返回一个过滤列表,其中包含仅由有效字符组成的原始列表元素。我想我可以使用两个嵌套的For循环遍历列表元素然后遍历给定元素的每个字符来实现结果,但我想知道是否有更有效的方法来使用Python方法或函数获得此结果。

对于以下两个列表:

valid_characters = ['A','B','C']
my_list = ['abcde','AbCB','ABCBA','XYZ','CBCBB','CABzBAC']

该函数将返回筛选列表['ABCBA','CBCBB']

python python-3.x string list conditional
1个回答
6
投票

您可以将valid_characters转换为一个集合,以便通过测试该集合是否是字符串中字符的超集来有效地确定字符串是否纯粹由集合中的字符组成:

valid_set = set(valid_characters)
print([s for s in my_list if valid_set.issuperset(s)])

这输出:

['ABCBA', 'CBCBB']
© www.soinside.com 2019 - 2024. All rights reserved.