1
有人可以幫助我創建算法。我有型號"Function"
與字段"symbol"
。來自拉丁字母的字母的生成算法?
當用戶創建新的函數對象系統時,需要從英文字母的字母中自動創建值爲"symbol"
的字段。現在我只做了從A到Z,沒有重複記錄字段值。
例如:
A
B
-
Z
AA
AB
-
AZ
BA
BB
-
ZZ
AAA
etc.
models.py:
class Function(models.Model):
id= models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
name = models.CharField(max_length=250)
symbol = models.TextField()
def __str__(self):
return self.name
views.py:
if form.is_valid():
for i in string.ascii_uppercase: # (A-Z)
if not Function.objects.filter(symbol=i, project=project_code).exists():
function = form.save(commit=False)
function.symbol = i
function.save()
break
感謝您提供此信息。正如我從'itertools.product()'所理解的那樣,我們需要設置位置的數量(n字母字符串)。我的意思是'重複'的論點。如果我需要無限數字,我需要做什麼?你可以用例子來表達你的想法,我可以稍微抱怨一下。 –
如果您需要任意大小,那麼我建議您編寫一個包裝生成器:一個以** repeat == 1 **開頭並根據需要循環更高的數字。但是,我懷疑實際上,您可以設置足夠大的上限以滿足您的實際需求。 – Prune