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)
Вы должны буфер вашей «головы», и распечатать его только после следующего преуспел, поскольку вы не можете предсказать, что будет дальше в итераторе, не потребляя его. –
@ Жак, спасибо за ваше предложение. Я изменяю свой предварительный вопрос. – minion