python - 如何在Python中优化这段代码

标签 python dictionary optimization iterator generator

我需要优化此代码,主要检查字符串 s1 的每个字符是否包含在 s2 中,同时考虑到 double 。

s1, s2 = list(s1), list(s2)
for s in s2:
    if s in s1:
        s1.remove(s)
    else:
        return False
return True

我对map、迭代器和生成器做了一些研究,我确信其中一个或多个有一个解决方案,但现在我非常困惑和沮丧(我'我对 python 很陌生,才几周),所以也许你可以帮助我了解在这种情况下最好的策略是什么。谢谢!

最佳答案

使用 Counter 的解决方案这将正确处理重复的字符:

from collections import Counter
c1 = Counter(s1)
c2 = Counter(s2)
return all(c2[c]>=c1[c] for c in c1)

关于python - 如何在Python中优化这段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44872160/

相关文章:

python - 我可以使用 Google Appengine ndb 存储带有 key_name 的 blob 吗?

python - 我希望能够使用日期查找特定的数据

ios - Swift - 有 "Dictionary With Duplicate Keys"解决方法吗?

angular - 使用 Angular CLI 预加载字体

mysql - 多列索引与多索引/索引合并

python - 将 pandas 中的数据框从迭代列表转换为适当的列和行

Python:为什么这段代码会执行?

r - R优化中的梯度函数

python - 通过鼠标单击获取 matplotlib 绘图图 python 的坐标

python - 在 python 中更改字典