小编use*_*661的帖子

从没有索引的列表中删除元素

所以我以这种方式迭代列表中的项目:

for virus in viruses:
    do stuff
    remove virus
Run Code Online (Sandbox Code Playgroud)

如果我有索引,我可以做del病毒[i],我可以明显地调整代码来做类似的事情for index in range(0, len(viruses)),但是这开始让代码变得很丑,对于我想在for循环中做的其他事情.无论如何我可以根据我正在迭代的病毒名称删除吗?

python

4
推荐指数
2
解决办法
5148
查看次数

列表的复杂排序

我有一个从大约上午8点到晚上7点的字符串格式的列表.未指定am/pm,并且不能使用24小时制.我希望按时间对这个列表进行排序,但是在时钟敲响之后我遇到了问题,因为数字排序从一开始,尽管事实上8到12之前实际上是时间.我在想我可以创建一个新的元组列表,我通过一个函数运行时间,将它们转换为更合适的数字,对其进行排序,并在需要的函数中使用元组的第一个元素.这似乎可行,但我担心我可能会遗漏更优雅和基本的东西.我呢?

python sorting

4
推荐指数
1
解决办法
159
查看次数

K&R表查询代码

尝试理解以下代码,以获得K&R中讨论的简单哈希查找算法的链表/结构实现:

struct nlist *lookup(char *);
char *strdup(char *);
/* install: put (name, defn) in hashtab */
struct nlist *install(char *name, char *defn)
{
    struct nlist *np;
    unsigned hashval;
    if ((np = lookup(name)) == NULL) { /* not found */
        np = (struct nlist *) malloc(sizeof(*np));
        if (np == NULL || (np->name = strdup(name)) == NULL)
            return NULL;
        hashval = hash(name);
        np->next = hashtab[hashval];
        hashtab[hashval] = np;
} else /* already there */
        free((void *) np->defn); /*free previous defn */
if …
Run Code Online (Sandbox Code Playgroud)

c

4
推荐指数
1
解决办法
757
查看次数

处理在没有全局变量的函数中使用的变量

所以我正在开发一个基本的文字游戏,你用它来处理一个字母的"手"(字典对象),用来创建单词并获得积分.

这个"手"用于许多功能的参数:计算玩家的分数,在玩家使用一个或多个字母后更新手中的字母数,显示手,检查玩家单词的有效性,等等

从我读过的所有内容中,我知道如果可以的话我应该避免使用全局变量(尽管我还不完全确定原因).

那么我可以将其他一般方法用于许多使用"hand"作为参数的函数?

python oop encapsulation

3
推荐指数
2
解决办法
182
查看次数

了解alpha-beta修剪算法中的截止条件

我无法理解我在维基百科上发现的alpha beta修剪的伪代码:

function alphabeta(node, depth, ?, ?, Player)         
    if  depth = 0 or node is a terminal node
        return the heuristic value of node
    if  Player = MaxPlayer
        for each child of node
            ? := max(?, alphabeta(child, depth-1, ?, ?, not(Player)))     
            if ? ? ?
                break (* Beta cut-off *)
        return ?
    else
        for each child of node
            ? := min(?, alphabeta(child, depth-1, ?, ?, not(Player)))     
            if ? ? ?
                break (* Alpha cut-off *)
        return ?
Run Code Online (Sandbox Code Playgroud)

令我困惑的是if Player = …

algorithm search artificial-intelligence alpha-beta-pruning

3
推荐指数
1
解决办法
4670
查看次数

在类中使用super()

我试图以这种方式使用super()作为一个简单的类层次结构:

class Employee(object):
    def __init__(self, name):
        self.name = name

class FullTime(Employee):
    def __init__(self, name, satOff, freeDays=[], alDays=[], programDays=[]):
        global satsOffDict
        global dayDict
        super(Employee, self).__init__(name)
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

TypeError: object.__init__() takes no parameters
Run Code Online (Sandbox Code Playgroud)

我已经读过你需要创建父对象类型对象(新样式类)才能让super工作.如果我将类Employee(对象)更改为类Employee(),我会收到此错误:

TypeError: must be type, not classobj
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

python oop

3
推荐指数
1
解决办法
530
查看次数

测试多对多字段的最佳方法

我在为 ManyToManyField 条目开发测试时遇到了问题。我有一个像这样的简单博客模型:

class Tag(models.Model):
    name = models.CharField(max_length=25)

class Entry(models.Model):

    title = models.CharField(max_length=80)
    author = models.ForeignKey(User)
    pubdate = models.DateTimeField()
    tags = models.ManyToManyField(Tag)
    text = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我已经创建了一些非常基本的测试,只是为了它的地狱:

class EntryTests(TestCase):
    def testEntryFields(self):
        user1 = User.objects.create_user('xs', 'ln@gmail.com', 'pw')
        user1.last_name = 'H'
        user1.save()

        now = timezone.now()
        entry1 = Entry(title="Title", author=user1, pubdate=now, text="Hello")
        entry1.save()
        tag1 = entry1.tags.create(name="testtag")
        tag1.save()

        self.assertEqual(entry1.title, "Title")
        self.assertEqual(entry1.pubdate, now)
        self.assertEqual(entry1.text, "Hello")
        self.assertEqual(entry1.author, user1)
        self.assertEqual(entry1.tags.all()[0], tag1)
        self.assertEqual(tag1.name, "testtag")
Run Code Online (Sandbox Code Playgroud)

这通过了,但正如您所看到的,我不得不做一些奇怪的体操(生成所有条目的列表,并获取该列表中的第一个也是唯一的条目)来测试 上的相等性entry1.tags。有没有更好的方法来用 Django 做到这一点?

python django

3
推荐指数
1
解决办法
4273
查看次数

如何随机生成文件链接?

我有一个PDF文件,我不想通过我网站上的URL公开访问.作为(轻微)安全层,我想通过电子邮件向用户发送一个随机生成的独特URL,他们可以从中下载PDF,我将在AWS上存储或类似的东西.

我觉得我被困在routes.rb监狱,我不知道如何动态生成URL,也不知道如何正确创建随机URL,跟踪它们,或将它们链接到本地​​或AWS上存储的文件.

有没有人有任何建议来解决这个问题?

ruby ruby-on-rails amazon-web-services

3
推荐指数
1
解决办法
1585
查看次数

覆盖类的方法定义

假设我有一个类FooClass,它定义了一个方法foo_method.这个类在第三方库中,我想明确地覆盖它.我有许多继承自FooClass的类,所以我不想为每个子类重写foo_method.相反,我想在不深入研究第三方库代码的情况下覆盖类的方法定义.当我尝试显而易见的方式,

from thirdparty import FooClass

class FooClass(object):

  def foo_method():
    newstuff
Run Code Online (Sandbox Code Playgroud)

我得到了奇怪的行为 - NotImplementedErrors等.我错过了什么吗?

python

3
推荐指数
1
解决办法
170
查看次数

向表单域动态添加占位符

我有一个带有几个典型字段的 Django 表单:

first_name = forms.CharField(label=_("First Name"))
last_name = forms.CharField(label=_("Last Name"))
phone = USPhoneNumberField(label=_("Phone Number"))
email = forms.EmailField()
password1 = forms.CharField(label=_("Password"),
    widget=forms.PasswordInput)
password2 = forms.CharField(label=_("Password confirmation"),
    widget=forms.PasswordInput,
    help_text=_("Enter the same password as above, for verification."))
Run Code Online (Sandbox Code Playgroud)

在网站上呈现表单时,我使用以下代码创建字段:

    <label for="id_first_name">First Name: </label>{{ form.first_name }}
    <label for="id_last_name">Last Name: </label>{{ form.last_name }}
    <p><label for="id_email">Email: </label>{{ form.email }}
    <p><label for="id_phone">Phone: </label>{{ form.phone }}
    <p><label for="id_password1">Password: </label>{{ form.password1 }}
    <p><label for="id_password2">Password Confirmation: </label>{{ form.password2 }}
    <p><input type="submit" value="Sign up" /></p>
Run Code Online (Sandbox Code Playgroud)

问题是我想要某些字段(电子邮件、名字、姓氏)的占位符,但我不希望它们成为“电子邮件地址”、“名字”等通用占位符。基于应用程序的业务逻辑,我希望它们是来自视图上下文的实际姓名和电子邮件地址,但用户仍然有权在使它们成为最终版本之前进行更改。

我想利用表单的便利性,但似乎没有一种简单的方法可以在不完全放弃 Django 表单的情况下仅使用常规 HTML 标签来动态生成占位符属性。有什么想法吗?

html python forms django

3
推荐指数
1
解决办法
1728
查看次数