【发布时间】:2016-04-27 23:54:06
【问题描述】:
def hide(iterable):
for v in iterable:
yield v
def strip_last(iterable,n):
counter = 0
for i in iterable:
counter += 1
if n == len(list(iterable)) - counter + 1:
return
yield i
print(''.join([v for v in strip_last(hide('camaro'), 1)]))
我正在尝试定义一个可以产生每个值的 strip_last 函数 除了最后 n 个值之外的可迭代对象,如下所示:
camar
但它只给了我:
c
这有什么问题??? 谢谢!
【问题讨论】:
-
你的意思是
'camaro'[:-n]? -
用
n替换i:i == len(list(iterable)) - n:另外我认为你根本不需要counter。 -
FWIW,您在下面的
print声明中将strip_last引用为drop_last -
我不太明白。你能帮我澄清一下吗?