gpt4 book ai didi

Python:是否有一种更具可扩展性的方法来查找字符串中的所有字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:39 25 4
gpt4 key购买 nike

我手头有一个相当简单的任务:给定一个(小写的)big 字符串和一个(小写的)small 字符串数组,我需要生成 1 if all small 字符串在 big 字符串中,否则为 0。所以这样做的 pythonic 方式就是:

>>> big = 'the quick brown fox jumps over the lazy dog'
>>> smallTrue = ["quick","dog","fox"]
>>> smallFalse = ["quick","fox","wolf"]
>>> int(all([s in big for s in smallTrue]))
1
>>> int(all([s in big for s in smallFalse]))
0

问题是是否有一种不同的方法来获取 0 和 1,这种方法可以更好地扩展到更大数量的明显更长的 big(想想“典型”科学的抽象paper) 加上一大组更长的 small 数组?

缩放意味着处理时间,因为我的机器有很多 RAM。因此,如果我需要以某种需要更多 RAM 的方式预处理数据,那很好。

之所以提问,是因为我在执行类似的字符串操作任务时遇到了一些可伸缩性问题。

最佳答案

只需删除方括号,您将拥有一个生成器而不是一个list 推导式。它将延迟而不是急切地评估,避免内存问题。

all(s in big for s in smallTrue)

此外,您可能不需要 int() 调用,因为 boolint 的子类, TrueFalse 分别代表10。您甚至可以用它们做数学运算。

关于Python:是否有一种更具可扩展性的方法来查找字符串中的所有字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568801/

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