这更像是一个编程练习,而不是一个现实世界的问题:我正在寻找一个类似于以下行为的生成器表达式append
.
考虑:
def combine(sequence, obj):
for item in sequence:
yield item
yield obj
s = ''.join(combine(sequence, obj))
这个生成器基本上类似于append
。在我的程序的工作流程中,上述速度与
sequence.append(obj)
s = ''.join(sequence)
我现在想知道是否有一个简洁的生成器表达式genexpr
with
s = ''.join(genexpr)
类似于append
上述行为没有性能警告。
s = ''.join(_ for a in [sequence, [obj]] for _ in a)
表现不好。
尝试使用chain http://docs.python.org/library/itertools.html#itertools.chain from itertools
module:
''.join(chain(sequence, [obj]))
如果您不想创建新的list
for obj
,那么你可以试试这个:
''.join(chain(sequence, repeat(obj,1)))
我会用[obj]
因为它更具可读性,我对此表示怀疑repeat
迭代器的开销比list
创建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)