Python中日期的排序列表
您是否知道问题的更简单解决方案,或者错误是由什么引起的?我似乎不明白Python中日期的排序列表,python,regex,list,sorting,lambda,Python,Regex,List,Sorting,Lambda,您是否知道问题的更简单解决方案,或者错误是由什么引起的?我似乎不明白 任何值得赞赏的东西:)您的代码中最基本的错误如下: return _compile(pattern, flags).findall(string) TypeError: expected string or bytes-like object 您显然忘记了enumerate(…)返回two 值:iterable中的索引和当前值 因此,正如您刚才使用的singlev,它得到的是索引,而不是值 另一个重要的一点是,如果datet
任何值得赞赏的东西:)您的代码中最基本的错误如下:
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object
您显然忘记了enumerate(…)
返回two
值:iterable中的索引和当前值
因此,正如您刚才使用的singlev
,它得到的是索引,而不是值
另一个重要的一点是,如果datetime字符串写为
yyyy.MM.dd hh:MM:ss
,您可以使用字符串排序对它们进行排序
因此,要收集字符串,您需要一个列表理解,其中包含两个嵌套的
循环
要对它们进行排序,应该使用sorted
函数,指定为排序
在逗号前键入“初始”(日期/时间)部分
总之,要获得字符串的排序列表,请从几个
函数的参数,按日期/时间部分排序,
您可以使用使用Python 3.6版编写的以下程序:
for v in enumerate(strats):
它甚至不使用
re
模块。就像错误所说的,它期望的是string-ytemp
是一个列表。@RafaelC:return sorted((arr1+arr2),key=lambda k:k.split(',')[0])这就是我在函数中所需要的,非常优雅。谢谢你删除了我之前的评论,很高兴你能及时看到哈哈:)很高兴我能帮忙:)
for v in enumerate(strats):
arr1 = ['2018.07.17 11:30:00,-0.19', '2018.07.17 17:55:00,0.86']
arr2 = ['2018.07.17 11:34:00,-0.39', '2018.07.17 17:59:01,0.85']
def combine_strats_lambda(*strats):
temp = [ v2 for v1 in strats for v2 in v1 ]
return sorted(temp, key = lambda v: v.split(',')[0])
res = combine_strats_lambda(arr1, arr2)
for x in res:
parts = x.split(',')
print("{:20s} {:>6s}".format(parts[0], parts[1]))