例如,Python中的文件是可迭代的 - 它们遍历文件中的行.我想计算行数.
一个快速的方法是这样做:
lines = len(list(open(fname)))
Run Code Online (Sandbox Code Playgroud)
但是,这会将整个文件加载到内存中(一次).这相当违背了迭代器的目的(它只需要将当前行保留在内存中).
这不起作用:
lines = len(line for line in open(fname))
Run Code Online (Sandbox Code Playgroud)
因为发电机没有长度.
有没有办法做到这一点,没有定义计数功能?
def count(i):
c = 0
for el in i: c += 1
return c
Run Code Online (Sandbox Code Playgroud)
编辑:澄清,我明白整个文件必须阅读!我只是不想在内存中一次性=).
至少在C和Java(Mozilla),JavaScript(再次使用Mozilla)和Ruby中都有一个JavaScript解析器.目前有没有针对Python的?
我本身不需要JavaScript解释器,只需要符合ECMA-262标准的解析器.
一个快速的谷歌搜索显示没有立即答案,所以我问SO社区.
什么是图灵机,人们为什么一直提到它?我的IBM PC就是我完成计算所需要的!为什么有人关心这些机器?
如何用纯函数式语言编写双向链表?也就是说,像Haskell这样的东西,你不在Monad,所以你没有变异.可能吗?(单链表很明显很简单).
在AngularJS中存储应用程序配置设置的最佳位置是什么?这可能是应用程序常量,查找等,可以从控制器和服务或工厂使用.我可以创建一个单独的服务来存储和检索这些东西,但我想知道是否有另一个适当的地方来存储和检索它们.
查看mozilla文档,查看正则表达式示例(标题为"使用匹配结果创建数组"),我们有以下语句:
input:一个只读属性,它反映与正则表达式匹配的原始字符串.
index:只读属性,是字符串中匹配的从零开始的索引.
etc ...是否可以在JavaScript中创建自己的对象,该对象具有只读属性,或者这是特定浏览器实现的内置类型的特权?
我有一个颜色是BGR的图像.如何转换我的PIL图像以有效的方式交换每个像素的B和R元素?
我正在运行一些动态编程代码(尝试暴力反驳Collatz猜想= P)并且我使用dict来存储我已经计算过的链的长度.显然,它在某些时候耗尽了内存.是否有任何简单的方法可以使用某些变体,dict当它用完房间时会将部分内容分页到磁盘上?显然它会比内存中的字典慢,并且最终可能会占用我的硬盘空间,但这可能适用于其他不那么无用的问题.
我意识到基于磁盘的字典几乎就是一个数据库,所以我使用sqlite3手动实现了一个,但是我并没有以任何智能的方式实现它并让它一次查找数据库中的每个元素...它慢了300倍.
是最聪明的方法来创建我自己的一组dicts,一次只保留一个内存,并以一种有效的方式将它们分页?
我想使用密钥在数组中找到值.
像这样:
$array=('us'=>'United', 'ca'=>'canada');
$key='ca';
Run Code Online (Sandbox Code Playgroud)
我怎么能拥有"加拿大"的价值?谢谢.
我有一个包含多个文件的C程序,所以我有,例如,stuff.c它实现了一些函数,并stuff.h使用函数原型.
我该如何记录评论中的功能?
我应该在头文件中包含所有文档,文件中的所有文档.c,还是复制两者的文档?我喜欢后一种方法,但后来我遇到问题,我将更新其中一个文档而不是另一个(通常是我进行第一次修改的文件,即如果我先修改头文件,那么它的注释)将反映这一点,但如果我更新实施,只会更改那些评论).
这个问题及其答案也适用于C++代码 - 另请参阅我应该在哪里放置文档注释?
python ×4
javascript ×3
angularjs ×1
arrays ×1
browser ×1
c ×1
colors ×1
comments ×1
database ×1
dictionary ×1
disk-based ×1
haskell ×1
header-files ×1
iterator ×1
key ×1
linked-list ×1
parsing ×1
php ×1
theory ×1