相关疑难解决方法(0)

列表理解与lambda +过滤器

我碰巧发现自己有一个基本的过滤需求:我有一个列表,我必须通过项目的属性过滤它.

我的代码看起来像这样:

my_list = [x for x in my_list if x.attribute == value]
Run Code Online (Sandbox Code Playgroud)

但后来我想,这样写它会不会更好?

my_list = filter(lambda x: x.attribute == value, my_list)
Run Code Online (Sandbox Code Playgroud)

它更具可读性,如果需要性能,可以取出lambda来获得一些东西.

问题是:使用第二种方式有什么警告吗?任何性能差异?我是否完全错过了Pythonic Way™并且应该以另一种方式(例如使用itemgetter而不是lambda)来完成它?

python lambda functional-programming list filter

793
推荐指数
12
解决办法
65万
查看次数

在Python中将datetime.date转换为UTC时间戳

我正在处理Python中的日期,我需要将它们转换为UTC时间戳,以便在Javascript中使用.以下代码不起作用:

>>> d = datetime.date(2011,01,01)
>>> datetime.datetime.utcfromtimestamp(time.mktime(d.timetuple()))
datetime.datetime(2010, 12, 31, 23, 0)
Run Code Online (Sandbox Code Playgroud)

将日期对象首先转换为datetime也无济于事.我试过这个链接的例子,但是:

from pytz import utc, timezone
from datetime import datetime
from time import mktime
input_date = datetime(year=2011, month=1, day=15)
Run Code Online (Sandbox Code Playgroud)

现在要么:

mktime(utc.localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)

要么

mktime(timezone('US/Eastern').localize(input_date).utctimetuple())
Run Code Online (Sandbox Code Playgroud)

确实有效.

所以一般的问题:如何根据UTC获得自纪元以来转换为秒的日期?

python datetime utc

281
推荐指数
6
解决办法
51万
查看次数

Python速度测试 - 时差 - 毫秒

为了加速测试一段代码,在Python中比较2次的正确方法是什么?我试过阅读API文档.我不确定我理解timedelta的事情.

到目前为止,我有这个代码:

from datetime import datetime

tstart = datetime.now()
print t1

# code to speed test

tend = datetime.now()
print t2
# what am I missing?
# I'd like to print the time diff here
Run Code Online (Sandbox Code Playgroud)

python time datetime time-measurement

122
推荐指数
6
解决办法
24万
查看次数

比较时间与亚秒精度

如何获得自纪元以来的毫秒数?

请注意,我想要实际的毫秒,而不是秒乘以1000.我正在比较需要不到一秒钟且需要毫秒精度的东西的时间.(我看了很多答案,他们似乎都有*1000)

我将POST请求中的时间与服务器上的结束时间进行比较.我只需要两次使用相同的格式,不管是什么.我认为unix时间会起作用,因为Javascript有一个函数可以实现

python benchmarking

35
推荐指数
4
解决办法
7万
查看次数

Python datetime.utcnow()返回不正确的日期时间

datetime.utcnow()
Run Code Online (Sandbox Code Playgroud)

此调用返回的日期时间不正确,从UTC/GMT延迟1小时(请登录:http://www.worldtimeserver.com/current_time_in_UTC.asp).

它应该像它应该的那样工作吗?

例如,它现在正在返回:

2015-02-17 23:58:44.761000.
Run Code Online (Sandbox Code Playgroud)

当前UTC时间是:00:58,而不是23:58

python datetime utc python-2.7

10
推荐指数
2
解决办法
3万
查看次数

python time(milli seconds)计算

如何计算毫秒,从下面的代码.

a = datetime.datetime.now()
b = datetime.datetime.now()
c = b - a

>>> c

>>> c.days
0
>>> c.seconds
4
>>> c.microseconds
Run Code Online (Sandbox Code Playgroud)

python time

8
推荐指数
2
解决办法
2万
查看次数

如何在Python中获得毫秒和微秒分辨率的时间戳

我终于弄明白这一点,想分享知识并节省一些时间,所以请看下面的答案.但是,我仍然需要Linux的答案,所以如果你知道,请回答,因为我的答案中的代码仅适用于Windows.

更新:我也想到了Linux,包括前Python 3.3(例如:Raspberry Pi),我在下面的答案中发布了我的新模块/代码.

我原来的问题:如何在Python中获得毫秒和微秒分辨率的时间戳?我也喜欢类似Arduino的延迟和delayMicroseconds()函数.


更新2018年12月19日:请不要将此问题标记为重复,并说它在其他地方有答案,但肯定没有.

几个月前,这个问题被标记为这个问题的副本.看这里: 在此输入图像描述

它说,"这个问题在这里已有答案." 不幸的是,这不是真的.几年前我在问这个问题之前就读过这些答案了,他们没有回答我的问题,也没有满足我的需要.它们和我的问题一样不适用,因为它是最黑的回答,因为它依赖于time模块,因为它依赖于模块,因为它不具有任何类型的保证分辨率,因此它是不可思议的错误:

请重新打开我的问题.它不是重复的.它没有其他问题的事先答案.链接已经包含答案的问题依赖于time模块,甚至表明它的解决方案已经到处都是.最热门的答案是使用16毫秒的答案引用Windows分辨率,这比我在此提供的答案(0.5 美分分辨率)差32000倍.同样,我需要1 ms1 us(或类似)分辨率,而不是16000 us分辨率.因此,它不是重复的.

谢谢你的时间.:)

python timestamp timing delay milliseconds

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

python的time.time()方法如何工作?

time.time()方法为您提供时间戳,该时间戳基本上是自纪元(以UTC为单位)以来经过的时间.

datetime.fromtimestamp()表示如果未提供tz参数,则返回本地日期时间对象.

我知道tz信息基本上被视为utc的偏移量以获得当地时间.

如果是这种情况,则必须从平台中提取utc中的当前时间.

从底层平台提取当天的当前时间,无论是本地还是UTC?

time utc python-2.7

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

具有lambda函数的filter()的复杂性分析

给出两个列表,list1list2

list3 = filter(lambda x: x in list1,list2)
Run Code Online (Sandbox Code Playgroud)

这将返回两个列表的交集.

如何找到此算法的复杂性?我发现时间复杂度x in list1O(n),其中n是列表中元素的数量,但是如何filter

python functional-programming time-complexity

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

Python将毫秒转换为日期时间并返回

因此,我有两个函数可以将python datetime.datetime()对象与毫秒之间相互转换。我无法弄清楚哪里出了问题。这是我正在使用的:

>>> import datetime
>>> def mil_to_date(mil):
    """date items from REST services are reported in milliseconds,
    this function will convert milliseconds to datetime objects

    Required:
        mil -- time in milliseconds
    """
    if mil == None:
        return None
    elif mil < 0:
        return datetime.datetime.utcfromtimestamp(0) + datetime.timedelta(seconds=(mil/1000))
    else:
        return datetime.datetime.fromtimestamp(mil / 1000)

>>> def date_to_mil(date):
    """converts datetime.datetime() object to milliseconds

    date -- datetime.datetime() object"""
    if isinstance(date, datetime.datetime):
        epoch = datetime.datetime.utcfromtimestamp(0)
        return long((date - epoch).total_seconds() * 1000.0)

>>> mil = 1394462888000 …
Run Code Online (Sandbox Code Playgroud)

python datetime python-2.7

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

python3 相当于 javascript 的 Date.now() 吗?

在 JavaScript 中,我可以分配:

var now = Date.now();

然后使用 now 作为数字变量进行计算

>>> import datetime
>>> datetime.datetime.now()
>>> datetime.datetime.today()
Run Code Online (Sandbox Code Playgroud)

在python3中,使用上层代码似乎没有帮助。知道什么相当于 Date.now() 吗?

javascript time datetime date python-3.x

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