Python 2逆转效率

时间:2017-08-25 12:43:18

标签: python performance python-2.x palindrome

虽然我认为它在技术上可能依赖于实现,但我想知道Python 2中的字符串上的reversed是否作为生成器对象,只是从结束字符开始向后移动指针并且不执行某些操作否则就像首先在内存中反转整个字符串一样低效。这主要是好奇心,所以我可以更好地理解Python!

对于某些上下文,我编写了以下is_palindrome函数,我认为这个函数在操作总数方面效率最高,而不是完全不兼容。这是假设上述情况,假设延迟评估,并假设all短路。

  from itertools import izip, islice    
  def is_palindrome(s):
        mid_idx = len(s) // 2
        return all(f == b for f, b in izip(islice(s, 0, mid_idx), islice(reversed(s), 0, mid_idx)) )

0 个答案:

没有答案