我有一个384MB的文本文件,有5000万行.每行包含2个以空格分隔的整数:键和值.该文件按键排序.我需要一种有效的方法来查找Python中大约200个键列表的值.
我目前的方法包括在下面.这需要30秒.必须有更高效的Python foo才能将其降低到最多几秒钟的合理效率.
# list contains a sorted list of the keys we need to lookup
# there is a sentinel at the end of list to simplify the code
# we use pointer to iterate through the list of keys
for line in fin:
line = map(int, line.split())
while line[0] == list[pointer].key:
list[pointer].value = line[1]
pointer += 1
while line[0] > list[pointer].key:
pointer += 1
if pointer >= len(list) - 1:
break # end of list; -1 is due …Run Code Online (Sandbox Code Playgroud) 我担心这个问题有点技术性,但我希望有人可能偶然发现了类似的主题,或者给我一些指针.
如果G是一个组(在代数结构的意义上),并且如果g 1,...,g n是G的元素,是否有算法(或某个专用程序中的函数,如GAP)来确定是否存在是G的一个子群,这些元素构成了子群的陪集的一组代表?(我们可以假设G是一个排列组,甚至可能是完整的对称组.)
(当然有几种算法可以找到给定子组的陪集,比如Todd-Coxeter算法;这是一种反问题.)
谢谢,Daniele
是否可以将表中的某个值增加一定数量而不读取最后一个值然后更新它?
即我有"产品"和"质量"栏目:产品:iLamp质量:50
我希望用x增加(或降低)质量.为了达到这个目的,我首先阅读最后一个值(50),增加或减少它,并将其写回.
有没有直接的方法来完成这项任务?
我正在编写一个django应用程序,用于跟踪允许哪些电子邮件地址将内容发布到用户的帐户.用户可以根据需要将地址列入白名单和黑名单.
任何未指定的地址都可以按消息处理,也可以默认为白名单或黑名单(再次由用户指定).
以下是我写的django模型......你认为这是一个很好的方法吗?或者我应该为每个用户的个人资料模型添加白名单和黑名单字段?
class knownEmail(models.Model):
# The user who set this address' permission, NOT
# the user who the address belongs to...
relatedUser = models.ManyToManyField(User)
email = models.EmailField()
class whiteList(knownEmail):
pass
class blackList(knownEmail):
pass
Run Code Online (Sandbox Code Playgroud)
然后我可以这样做:
def checkPermission(user, emailAddress):
"Check if 'emailAddress' is allowed to post content to 'user's profile"
if whiteList.objects.filter(relatedUser=user, email=emailAddress):
return True
elif blackList.objects.filter(relatedUser=user, email=emailAddress):
return False
else:
return None
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
有没有人知道一个Ruby模块会取一个整数并拼出来(1 =>"one",2 =>"two"等等)?
假设规则如下:
.largeField {
width: 65%;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法以某种方式获得'65%',而不是像素值?
谢谢.
编辑:不幸的是,在我的情况下使用DOM方法是不可靠的,因为我有一个导入其他样式表的样式表,因此cssRules参数以null或未定义的值结束.
但是,这种方法适用于大多数简单的情况(一个样式表,文档头标记内的多个单独的样式表声明).
foo.py:
i = 10
def fi():
global i
i = 99
Run Code Online (Sandbox Code Playgroud)
bar.py:
import foo
from foo import i
print i, foo.i
foo.fi()
print i, foo.i
Run Code Online (Sandbox Code Playgroud)
这是有问题的.i变化时为什么不foo.i改变?
我的Ruby on Rails应用程序使用以下控制器代码生成sitemap.xml文件:
class SitemapController < ApplicationController
layout nil
def index
headers['Content-Type'] = 'application/xml'
last_post = Post.last
if stale?(:etag => last_post, :last_modified => last_post.updated_at.utc)
respond_to do |format|
format.xml { @posts = Post.sitemap } # sitemap is a named scope
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的理解是,stale?如果内容没有改变,该方法应该确保HTTP 304 Not Modified响应.但是,每当我使用curl或Web浏览器测试时,我总是得到一个HTTP 200:
$ curl --head localhost:3000/sitemap.xml HTTP/1.1 200 OK Connection: close Date: Mon, 13 Apr 2009 15:50:00 GMT Last-Modified: Wed, 08 Apr 2009 16:52:07 GMT X-Runtime: 100 ETag: "5ff2ed60ddcdecf291e7191e1ad540f6" Cache-Control: private, max-age=0, …
如果两个模块相互导入会发生什么?
为了概括这个问题,Python中的循环导入怎么样?
目前我正在将它用于JBoss,但我还需要一些外部Tomcat:
Properties props = new Properties();
props.put(Context.PROVIDER_URL, "jnp://localhost:1099");
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");
props.put("j2ee.clientName", "abtest");
Run Code Online (Sandbox Code Playgroud)
使用Google搜索我发现了这些,但我无法弄清楚Tomcat的端口配置接受JNDI连接...
props.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
props.put(Context.PROVIDER_URL, "http://localhost:???");
Run Code Online (Sandbox Code Playgroud)
请你能救我吗?