我手头有一个相当简单的任务:给定一个(小写)big
字符串和一个(小写)small
字符串数组,如果所有small
字符串都在big
字符串中,我需要生成1,否则生成0。所以Python式的方法就是:
>>> 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
个数(想想一篇“典型”科学论文的摘要)和更长的一大组small
数组?你知道吗
缩放意味着处理时间,因为我的机器有很多内存。所以如果我需要以某种方式对数据进行预处理,那就需要更多的RAM了。你知道吗
之所以问这个问题,是因为我在执行类似的字符串操作任务时遇到了一些可伸缩性问题。你知道吗
在字符串中查找字符串总是很慢的。如果拆分为大的,然后在生成器上运行all(),则应该可以提高性能
只要去掉方括号,就可以得到一个生成器而不是
list
理解。它将被懒散地评估,而不是急切地评估,以避免记忆问题。你知道吗另外,您可能不需要
int()
调用,因为bool
是int
的一个子类,True
和False
分别表示1
和0
。你甚至可以和他们一起做数学。你知道吗相关问题 更多 >
编程相关推荐