有人会如何实现以下结构的特征Iterator和IntoIterator特征?
struct Pixel {
r: i8,
g: i8,
b: i8,
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下各种形式但没有成功.
impl IntoIterator for Pixel {
type Item = i8;
type IntoIter = Iterator<Item=Self::Item>;
fn into_iter(self) -> Self::IntoIter {
[&self.r, &self.b, &self.g].into_iter()
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码给了我一个编译错误
error[E0277]: the trait bound `std::iter::Iterator<Item=i8> + 'static: std::marker::Sized` is not satisfied
--> src/main.rs:7:6
|
7 | impl IntoIterator for Pixel {
| ^^^^^^^^^^^^ the trait `std::marker::Sized` is not implemented for `std::iter::Iterator<Item=i8> + 'static`
|
= note: `std::iter::Iterator<Item=i8> + 'static` does …Run Code Online (Sandbox Code Playgroud) 我的问题是一般的问题,但具体来说我的应用程序是Django的login_required装饰器.
我很好奇是否有办法检查视图/函数是否有特定的装饰器(在这种情况下是login_required装饰器)
我将用户注销后重定向,如果当前页面上有login_required装饰器,我想重定向到主页面.到目前为止,我的搜索没有得到任何结果.
在我们的办公室里,我们有一个问题,就像这样.为了保持一致性,我将此上下文限制为python.我确定还有其他答案,但我真的只对python答案感兴趣.
say当我这样调用时,给我写一个名为的函数:
>>> say('Hello')('World')
Run Code Online (Sandbox Code Playgroud)
它只打印(不返回):
>>> say('Hello')('World')
Hello World
>>>
Run Code Online (Sandbox Code Playgroud)
我们在今天的采访之后进行了一次元讨论,我说我总是希望申请人能够回答以下问题.
def say(x):
print "Hello World"
return lambda a:None
Run Code Online (Sandbox Code Playgroud)
我意识到有可能通过用lambda某种类型的内置替换函数来进一步缩短它,None但是我已经挖了但似乎找不到比lambda a:None
所以这里的整体问题是......
你能想出一种方法来缩短它,因为总体角色较少(忽略换行符).任何导入语句都会计入您的字符数.(52个字符)
UPDATE
(39个字符)
>>> def p(x):
... print "Hello",x
>>> say=lambda x:p
>>> say("Hello")("World")
Hello World
>>>
Run Code Online (Sandbox Code Playgroud)
Python 3答案(48个字符)
>>> def say(x):
... return lambda a:print("Hello World")
>>> say("Hello")("World")
Hello World
>>>
Run Code Online (Sandbox Code Playgroud) 这是主要问题.我有48个维向量的非常大的数据库(25,000左右),每个向量的值都在0-255之间.具体细节并不那么重要,但我认为它可能有助于提供背景信息.
我不需要最近的邻居,因此可以接受在准确度范围内的近似邻居搜索.我一直在玩Locality Sensitivity Hashing,但我非常迷失.
我尽可能地编写了"稳定分布"一文中描述的哈希函数.这是代码.
def lsh(vector, mean, stdev, r = 1.0, a = None, b = None):
if not a:
a = [normalvariate(mean, stdev) for i in range(48)]
if not b:
b = uniform(0, r)
hashVal = (sum([a[i]*vectorA[i] for i in range(48)]) + b)/r
return hashVal
Run Code Online (Sandbox Code Playgroud)
散列函数至少有一些"工作".如果我按照散列值排序点列表并计算列表中点与其邻居之间的平均距离,则平均距离约为400,而任意两个随机选择点的平均距离约为530.
我最大的问题是这些.
答:关于我可以在哪里阅读更多相关信息的任何建议.我的搜索没有产生很多结果.
B:该方法建议输出一个整数值(我的不是).然后你应该尝试找到这个整数值的匹配,匹配表示可能最近的邻居.我理解我应该为我的所有点计算一组哈希值表,然后检查表中的哈希匹配,但我返回的值似乎不够好,我最终会得到完全匹配.我需要进行更多测试.
C:关于如何基于其他散列方法构造散列函数的说明?
我正在寻找可扩展的答案,但出于我的特定目的,我有一个48维向量.这可以表示为48个整数的数组,全部介于0和255之间.
我有一本关于这些载体的大字典,大约有2.5万个.
我需要能够获取可能在我的数据库中或可能不在我的数据库中的向量,并快速找到数据库中哪个向量最接近.最接近,我的意思是传统的距离公式.
我的代码最终会出现在python中,但这更像是一个普遍的问题.
蛮力太慢了.我需要一个近词典速度查找.有人有想法吗?
感谢那些已经回答了我之前的问题并让我走到这一步的人.
我有一个约25,000个向量的表,每个向量有48个维度,值为0-255.
我正在尝试开发一种Locality Sensitive Hash(http://en.wikipedia.org/wiki/Locality-sensitive_hashing)算法,用于查找近邻或最近邻点.
我目前的LSH功能如下:
def lsh(vector, r = 1.0, a = None, b = None):
if not a:
a = [normalvariate(10, 4) for i in range(48)]
if not b:
b = uniform(0, r)
hashVal = floor((sum([a[i]*vector[i] for i in range(48)]) + b)/r)
return int(hashVal)
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:
答:我的代码的"normalvariate(10,4)"部分是否有最佳值?这是使用random.normalvariate(http://docs.python.org/library/random.html#random.normalvariate)函数构建的pythons ,我用它来生成"d维向量,其中条目独立于稳定分布选择" .从我的实验来看,价值似乎并不重要.
B:在维基百科文章的顶部,它指出:
如果d(p,q)<= R,则h(p)= h(q),概率至少为P1
如果d(p,q)> = cR,则h(p)= h(q),概率最多为P2
这里提到的R值是否也是稳定分布部分中提到的R值.(http://en.wikipedia.org/wiki/Locality-sensitive_hashing#Stable_distributions)
C:与我之前的问题(B)有关.我发现在我的哈希函数中使用更高的R值将我的向量映射到更小范围的哈希值.有没有办法优化我的R值.
D:大概可以使用多少个表?
所以我刚刚将django更新为1.2.3,现在当我尝试运行'python manage.py shell'在django环境中工作时,我收到以下错误.
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
utility.execute()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/management/base.py", line 351, in handle
return self.handle_noargs(**options)
File "/opt/local/lib/python2.5/site-packages/django/core/management/commands/shell.py", line 18, in handle_noargs
loaded_models = get_models()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", line 167, in get_models
self._populate()
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/loading.py", …Run Code Online (Sandbox Code Playgroud) 我的django项目中有两个应用程序(app1和app2).
我很好奇是否有办法在应用程序之间导入内容.
baseProject
--app1
----models.py
----etc..
--app2
----models.py
----etc..
Run Code Online (Sandbox Code Playgroud)
我希望能够在app2中从app1的models部分导入一些东西.是否有预期的方法来做到这一点,或者我计划糟糕的架构.