以下代码返回'2012-06-07 00:00'时间戳1339119900000和1339120800000:
>>> from datetime import date
>>> date.fromtimestamp(1339119900000/1e3).strftime('%Y-%m-%d %H:%M')
'2012-06-07 00:00'
>>> date.fromtimestamp(1339120800000/1e3).strftime('%Y-%m-%d %H:%M')
'2012-06-07 00:00'
Run Code Online (Sandbox Code Playgroud)
但是,这些时间戳相隔15分钟,而且它们都不是午夜.
我在Windows 7机器上运行32位Python 2.7.3,但在Red Hat机器上注意到了相同的情况.为什么这样,我如何从时间戳中获得小时和分钟的分辨率?
样本:
d = {
"test": 1,
"sample": 2,
"example": 3,
"product": 4,
"software": 5,
"demo": 6,
}
filter_keys = ["test","sample","example","demo"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的字典,它只包含第一个字典中键出现在列表中的那些项目。换句话说,我想要:
d2 = {
"test": 1,
"sample": 2,
"example": 3,
"demo": 6,
}
Run Code Online (Sandbox Code Playgroud)
我可以用一个循环来做到这一点:
d2 = {}
for k in d.keys():
if (k in filter_keys):
d2[k] = d[k]
Run Code Online (Sandbox Code Playgroud)
但这似乎非常“非 Pythonic”。我还猜测,如果您有一个巨大的 dict,比如说 5,000 个左右的项目,与更直接的方式相比,向新 dict 不断添加新项目会很慢。
此外,您还希望能够处理错误。如果列表包含不是字典中的键的内容,则应该忽略它。或者它可能被添加到新的字典中,但值为 None。
有没有更好的方法来实现这一点?