Я создал функцию, которая генерирует непрерывный список алфавитов. A, B, C ..., Z. После Z он переходит в AA, AB, AC ... AZ. Эта картина повторяется. Это похоже на имена столбцов MS Excel. На данный момент эта функция генерирует конечный список алфавитов.Как создать бесконечный итератор для генерации инкрементирующего шаблона алфавита?
_column_name_generator() = ['A', 'B', ..., 'AA', 'AB', ..., 'BA', 'BB', ..., 'CV']
Я могу затем перебрать его в сочетании с некоторым конечным списком, например. 0-10. См. Мой код ниже. Я хотел бы создать генератор, который даст мне бесконечно длинный список инкрементирующих алфавитов.
import string
def _column_name_generator():
column_names = []
for x in range(0, 100):
if x < 26:
column_names.append(string.ascii_uppercase[x % 26])
else:
column_names.append(column_names[x/26 - 1] + string.ascii_uppercase[x % 26])
return column_names
container = []
for column_name, num in zip(_column_name_generator(), range(0, 10)):
container.append(column_name + str(num))
print _column_name_generator()
print container
container = ['A0', 'B1', 'C2', 'D3', 'E4', 'F5', 'G6', 'H7', 'I8', 'J9']
исследуйте о' yield' –