小编EML*_*EML的帖子

datetime.date.fromtimestamp:忽略小时和分钟

以下代码返回'2012-06-07 00:00'时间戳13391199000001339120800000:

>>> 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机器上注意到了相同的情况.为什么这样,我如何从时间戳中获得小时和分钟的分辨率?

python datetime

2
推荐指数
1
解决办法
3075
查看次数

根据键列表将一个 dict 的一部分复制到一个新的 dict

样本:

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。

有没有更好的方法来实现这一点?

python dictionary

1
推荐指数
1
解决办法
1514
查看次数

标签 统计

python ×2

datetime ×1

dictionary ×1