gpt4 book ai didi

python - 如何通过每个字符可以出现的次数限制来过滤字符串?

转载 作者:行者123 更新时间:2023-11-30 22:01:40 24 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数根据允许每个字符出现的次数的特定限制来过滤字符串列表。

例如,这是我的输入:

foo = ['BAR', 'BAAR', 'RABA', 'AAARB', ...]
characters = ['B', 'A', 'A', 'R']

输出应该是:

['BAR', 'BAAR', 'RABA']

值 AAARB 被排除,因为它有 3 个 A。包含值 BAR 是因为它可以使用少于最大字符出现次数。

这个过程应该是高效的,因为我的输入字符串列表大约有 7,300 个项目,而我的允许字符列表始终有 12 个字符。

最佳答案

通过比较允许的字符和每个字符串中的字符的直方图,您可以很容易地做到这一点。例如:

import collections

def find_subsets_of(strings, allowed_chars):
allowed = collections.Counter(allowed_chars)
for string in strings:
counts = collections.Counter(string)
if all(counts[ch] <= allowed[ch] for ch in counts):
yield string

result = list(find_subsets_of(foo, characters))

关于python - 如何通过每个字符可以出现的次数限制来过滤字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com