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

标签 python python-3.x string list conditional

我正在 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']

关于python - 如何在 Python 3.x 中过滤掉包含无效字符的列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55656637/

相关文章:

python - 按索引将数据帧合并到列表中

javascript - 两个相同的字符串未显示为相等的 Javascript Meanjs

python - 如何在 python 中更改 gtk messagedialog 中的主要文本?

Python 2 列出比较优化

python - dict 模拟 switch 运算符

python - eval() 适用于 MacOS 但不适用于 Windows

python - 当 A、B、M 是大数时,如何计算 (A^B)%M?

javascript - 在javascript中抓取和显示xml格式的字符串

c - 问题查找字符串中给定子字符串的出现次数

python - 使用索引和更好的 SQL 在循环中优化查询集