无论我在哪里搜索,他们都说python词典没有任何顺序.当我运行代码1时,每次显示不同的输出(随机顺序).但是当我运行代码2时,它总是显示相同的排序输出.为什么字典在第二个片段中排序?
#code 1
d = {'one': 1, 'two': 2, 'three': 3, 'four': 4}
for a, b in d.items():
print(a, b)
#code 2
d = {1: 10, 2: 20, 3: 30, 4: 40}
for a, b in d.items():
print(a, b)
Run Code Online (Sandbox Code Playgroud)
输出
代码1:
four 4
two 2
three 3
one 1
Run Code Online (Sandbox Code Playgroud)
代码1:
three 3
one 1
two 2
four 4
Run Code Online (Sandbox Code Playgroud)
代码2(总是):
1 10
2 20
3 30
4 40
Run Code Online (Sandbox Code Playgroud) 我正在测量html5视频的实时帧率,有没有人有一些想法?由于我没有在html5视频中找到有关帧的属性信息,我不知道如何做到这一点.
另一种选择,如何访问html5-video显示的每个帧(可能在播放时有丢帧).我曾尝试使用canvas通过drawImage从视频中获取图像,并通过getImageData获取帧数据,但似乎获得的帧数据与视频中逐帧播放的帧数据不同,可能有100帧播放,但我们可以通过getImageData方法获得120 0r 70等帧.
总结一下,如何在播放html5视频时获得实时fps或每帧显示?
当我将悬停事件放在raphael集上时,效果将应用于每个不同的路径.因此,当我越过路径时,它会更改该单个路径的填充,而不是同时更改整个集合的填充.
例如,在这张地图中,当你用鼠标穿过加拿大时,大陆会改变它的颜色,但是所有的冰岛都保持相同的颜色.
这是我的代码.
drawSets: function(){
for (country in this.setsArr){
var setset= R.set();
var zone = this.setsArr[country];
for (group in zone){
var path = R.path(this.setsArr[country][group].path);
setset.push(
path
);
}
var attri = this.options.attributes;
setset.attr(attri);
var x = this.setsArr[country].translate.x;
var y = this.setsArr[country].translate.y;
setset.translate(x,y);
setset.hover(function(){
this.animate({
fill: '#000'
}, 300);
}, function(){
this.animate({
fill: attributes.fill
}, 300);
});
}
},
Run Code Online (Sandbox Code Playgroud)
我正在使用Raphaels动画方法.
关于如何解决这个问题的任何想法?
以下是整个应用程序的文件...
http://www.megaupload.com/?d=GHQ5HATI
这是另一个包含这个问题的问题.
我在两个不同领域的模型上有两个不同的计算方法.在保存之前.
Class Event < ActiveRecord::Base
#some relations
before_save :method1, unless: :some_field_1?
before_save :method2, unless: :some_field_2?
def method1
some_field_1 = some_other_field / 2
end
def method2
some_field_2 = some_field_1 / 3
end
end
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是当调用method2时,some_field_1为null.我的猜测是,声明像我正在做的before_save回调是错误的.
我知道我可以将两个方法包装成一个没有条件和问题解决的方法,但我更愿意有条件回调.我想知道正确的做法.文档对此并不十分清楚.
非常感谢!
编辑
备查.代码还可以.问题出在其他地方(数据库)!
我正在为一个电子学习网站工作.我一个月前刚开始.我正在使用Moodle运行一个涉及不超过5000个用户的项目.
他们让我为超过100,000名用户设置了Moodle plataform,我不知道是否有可能使用Moodle来处理这么多的用户.
有谁知道是否可以这样做?这更依赖于服务器?
提前致谢.
我在电子应用程序上使用pouchDb.在传递给pouchDb之前,数据存储在postgres数据库中.在某些情况下,要弄清楚如何以文档方式构建数据并不难.
我主要担心的是关系.例如:
我有数据类型项目,项目有很多事件.现在我在每个事件上都有一个名为project_id的字段.因此,当我想要获得ID为'project/1'的项目的事件时,我会这样做
_db.allDocs({
include_docs: true,
startkey: 'event',
endkey: 'event\uffff'
}).then(function(response){
filtered = _.filter(response['rows'], function(row){
return row['doc']['project_id'] == 'project/1'
});
result = filtered.map(function(row){
return row['doc']
})
});
Run Code Online (Sandbox Code Playgroud)
我已经读过这allDocs
是性能最好的API,但是,在这种情况下是否有更方便的视图?
另一方面,当我显示包含所有项目的列表时,每个项目都需要显示它具有的事件数.在这种情况下,我似乎必须再次运行allDocs,include_docs: false
以便计算项目所具有的事件数.
有观点会改善这种情况吗?
另一方面,我正在考虑在Project文档中创建一个包含所有事件ID的数组,以便我可以轻松计算它有多少事件.在这种情况下,我应该使用allDocs吗?有没有办法将ID数组传递给allDocs?或者更好的是在该数组上使用循环并为每个id调用get(id)?
这种方式比第一种更有效吗?
谢谢!
我正在尝试通过socket.io将浏览器连接到我的应用程序.
<script type="text/javascript" src="http://localhost:4000/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:4000');
</script>
Run Code Online (Sandbox Code Playgroud)
使用这种标准方法一切正常.现在我正在尝试基于服务器的IP在"动态"中转换此连接,如下所示:
<html>
<head>
var socket;
function loadFile(filename){
var ip_server = location.host;
var body = document.getElementsByTagName( 'body' )[0],
fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", "http://"+ip_server+"/"+filename);
body.appendChild( fileref );
}
</head>
<body>
<script type="text/javascript">
loadFile("socket.io/socket.io.js");
socket = io.connect('http://'+location.host);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但萤火说的ReferenceError:IO没有定义就行socket = io.connect('http://'+location.host);
.
我怎么解决?有一种简单的方法可以做我正在思考的事情吗?谢谢
activerecord ×1
before-save ×1
couchdb ×1
database ×1
dictionary ×1
frame-rate ×1
html5 ×1
javascript ×1
load ×1
measure ×1
moodle ×1
node.js ×1
pouchdb ×1
python ×1
raphael ×1
socket.io ×1
svg ×1
video ×1