#python-3.x
#python-3.x
Вопрос:
Я пытаюсь сгенерировать пользовательскую буквенно-цифровую последовательность. Последовательность будет выглядеть следующим образом :
AA0…AA9 AB0…AB9 AC0 … AC9 .. и так далее..
Короче говоря, есть 3 места для заполнения..
On the first place, the values can go from A to Z.
On the second place, the values can go from A to Z.
On the last place, the value can go from 0 to 9.
Код :
s= list('AA0')
for i in range(26):
for j in range(26):
for k in range(10):
if k<10:
print(s[0] s[1] str(k))
s[1]= chr(ord(s[1]) 1)
s[0]= chr(ord(s[0]) 1)
Я смог сгенерировать последовательность до AZ9, а затем я получаю последовательность ниже..
это должно быть BA0 … BZ9..
B[0
B[1
B[2
B[3
B[4
B[5
B[6
B[7
B[8
B[9
B0
B1
B2
B3
B4
B5
B6
Ответ №1:
это способ сделать именно это:
from itertools import product
from string import ascii_uppercase, digits
for a, b, d in product(ascii_uppercase, ascii_uppercase, digits):
print(f'{a}{b}{d}')
string.ascii_uppercase
просто 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
; string.digits
is '0123456789'
, а itertools.product
затем перебирает все комбинации.
вместо digits
этого вы могли бы использовать range(10)
так же хорошо.
Комментарии:
1. Да, это приятно. 1
Ответ №2:
Вы можете использовать itertools.product
:
>>> letters = [chr(x) for x in range(ord('A'), ord('Z') 1)]
>>> letters
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
>>> combinations = ["".join(map(str, x)) for x in itertools.product(letters, letters, range(10))]
>>> combinations
['AA0', 'AA1', 'AA2', 'AA3', 'AA4', 'AA5', 'AA6', 'AA7', 'AA8', 'AA9', 'AB0', 'AB1', 'AB2', 'AB3', 'AB4', 'AB5', 'AB6', 'AB7', 'AB8', 'AB9', 'AC0', 'AC1', 'AC2', 'AC3', 'AC4', 'AC5', 'AC6', 'AC7', 'AC8', 'AC9', 'AD0', 'AD1', 'AD2', 'AD3', 'AD4', 'AD5', 'AD6', 'AD7', 'AD8', 'AD9', 'AE0', 'AE1', 'AE2', 'AE3', 'AE4', 'AE5', 'AE6', 'AE7', 'AE8', 'AE9', 'AF0', 'AF1', 'AF2', 'AF3', 'AF4', 'AF5', 'AF6', 'AF7', 'AF8', 'AF9', 'AG0', 'AG1', 'AG2', 'AG3', 'AG4', 'AG5', 'AG6', 'AG7', 'AG8', 'AG9', 'AH0', 'AH1', 'AH2', 'AH3', 'AH4', 'AH5', 'AH6', 'AH7', 'AH8', 'AH9', 'AI0', 'AI1', 'AI2', 'AI3', 'AI4', 'AI5', 'AI6', 'AI7', 'AI8', 'AI9', 'AJ0', 'AJ1', 'AJ2', 'AJ3', 'AJ4', 'AJ5', 'AJ6', 'AJ7', 'AJ8', 'AJ9', 'AK0'...]