L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
head = 'head'
tail = 'tail'
假設我們可以並且只能得到某個迭代器(L)的迭代器。 ,我們無法知道L. 的長度是可以打印迭代爲:如何使用Python迭代器打印此模式
'head123tail'
'head456tail'
'head789tail'
'head10tail'
我嘗試在其計算方法如下。
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
head = 'head'
tail = 'tail'
slice_size = 3
i = iter(L)
try:
while True:
counter = 0
while counter < slice_size:
e = next(i)
if counter == 0:
print(head, end='')
print(e, end='')
counter += 1
else:
print(tail)
except StopIteration:
if counter > 0:
print(tail)
你必須要緩衝自己的「頭」,並將其打印僅次於後已經成功了,因爲你無法預測迭代器中的下一個內容而不消耗它。 –
@ Jacques,謝謝你的建議。我修改我的初步問題。 – minion