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