拉丁字母的字母生成算法?

时间:2017-04-03 16:43:42

标签: python django algorithm python-3.x django-views

有人可以帮助我创建算法。我的模型"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

1 个答案:

答案 0 :(得分:1)

让内置函数为您做无聊的工作。

我认为你会用itertools.product()做得更好。创建生成器并只需调用 next()每当您需要下一个组合时。如果你想从单字母字符串开始并从那里开始工作,那么将空格作为字母表的第一个元素;当你抓住一个新标签时,剥离()将空白区域移出来。