Python根据类型选择随机消息的最有效方法

2024-09-29 10:21:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到了一些(数百)条消息,类型如下:

Type Message
1    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1    Maecenas eu risus a arcu rutrum vehicula vel in neque.
1    Curabitur ante sapien, cursus nec diam non, porttitor sagittis leo.
2    Nunc et nisi nec ligula placerat accumsan.
2    In lacinia, neque rutrum aliquet luctus, odio ligula accumsan risus.
3    ...
3    ...
...  ...

我想从类型1消息中选择一个随机消息,或类型2消息,等等。我想建立一个有效的方法。所以我的问题是:

我应该如何存储这些消息?使用list、dictionary、txt或DB表(我也使用Django)。消息将是静态的。我不会定期更改或编辑它们。购买也许在将来我需要使用其他语言的翻译。在

如何根据类型选择随机消息?i、 e.“类型为1的随机消息”。在

谢谢大家


Tags: 消息类型messagetypenecipsumloremdolor
1条回答
网友
1楼 · 发布于 2024-09-29 10:21:22

将消息存储在Django模型中,然后使用random order选择消息:

from django.db import models    


class Message(models.Model):
    type = models.IntegerField(default=1)
    message_text = models.CharField(max_length=500)

    @classmethod
    def random_by_type(cls, type_number):
        return cls.objects.filter(type=type_number).order_by('?').first()

我将它作为一个类方法,因此您可以随机选择一条消息:

^{pr2}$

当然,您也可以使用静态设置来完成此操作:

import random

messages = {
    1: ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
        'Maecenas eu risus a arcu rutrum vehicula vel in neque.'
        'Curabitur ante sapien, cursus nec diam non, porttitor sagittis leo.',
    ],
    2: ['Nunc et nisi nec ligula placerat accumsan.',
        'In lacinia, neque rutrum aliquet luctus, odio ligula accumsan risus.',
    ],
    3: ['....'],
    # ...
}

def random_by_type(type_number):
    return random.choice(messages[type_number])

但是为什么要忽略使用Django管理接口来管理消息的可能性呢?在

相关问题 更多 >