所以我以这种方式迭代列表中的项目:
for virus in viruses:
do stuff
remove virus
Run Code Online (Sandbox Code Playgroud)
如果我有索引,我可以做del病毒[i],我可以明显地调整代码来做类似的事情for index in range(0, len(viruses)),但是这开始让代码变得很丑,对于我想在for循环中做的其他事情.无论如何我可以根据我正在迭代的病毒名称删除吗?
我有一个从大约上午8点到晚上7点的字符串格式的列表.未指定am/pm,并且不能使用24小时制.我希望按时间对这个列表进行排序,但是在时钟敲响之后我遇到了问题,因为数字排序从一开始,尽管事实上8到12之前实际上是时间.我在想我可以创建一个新的元组列表,我通过一个函数运行时间,将它们转换为更合适的数字,对其进行排序,并在需要的函数中使用元组的第一个元素.这似乎可行,但我担心我可能会遗漏更优雅和基本的东西.我呢?
尝试理解以下代码,以获得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) 所以我正在开发一个基本的文字游戏,你用它来处理一个字母的"手"(字典对象),用来创建单词并获得积分.
这个"手"用于许多功能的参数:计算玩家的分数,在玩家使用一个或多个字母后更新手中的字母数,显示手,检查玩家单词的有效性,等等
从我读过的所有内容中,我知道如果可以的话我应该避免使用全局变量(尽管我还不完全确定原因).
那么我可以将其他一般方法用于许多使用"hand"作为参数的函数?
我无法理解我在维基百科上发现的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 = …
我试图以这种方式使用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)
这是怎么回事?
我在为 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 做到这一点?
我有一个PDF文件,我不想通过我网站上的URL公开访问.作为(轻微)安全层,我想通过电子邮件向用户发送一个随机生成的独特URL,他们可以从中下载PDF,我将在AWS上存储或类似的东西.
我觉得我被困在routes.rb监狱,我不知道如何动态生成URL,也不知道如何正确创建随机URL,跟踪它们,或将它们链接到本地或AWS上存储的文件.
有没有人有任何建议来解决这个问题?
假设我有一个类FooClass,它定义了一个方法foo_method.这个类在第三方库中,我想明确地覆盖它.我有许多继承自FooClass的类,所以我不想为每个子类重写foo_method.相反,我想在不深入研究第三方库代码的情况下覆盖类的方法定义.当我尝试显而易见的方式,
from thirdparty import FooClass
class FooClass(object):
def foo_method():
newstuff
Run Code Online (Sandbox Code Playgroud)
我得到了奇怪的行为 - NotImplementedErrors等.我错过了什么吗?
我有一个带有几个典型字段的 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 标签来动态生成占位符属性。有什么想法吗?