【发布时间】:2023-03-31 09:40:01
【问题描述】:
import re
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):
"""
Takes *strats in date,return format
combines infinite amount of strats with date, return and packs them into
one
single sorted array
>> RETURN: combined list
"""
temp = []
# create combined list
for v in enumerate(strats):
i = 0
while i < len(v[1]):
temp.append(v[1][i])
#k = re.findall(r"[\w']+", temp)[:6]
i += 1
temp2 = sorted(timestamps, key=lambda d: tuple(map(int, re.findall(r"[\w']+", d[0]))))
return temp2
嗨,
我一直在尝试完成这个功能,它应该结合多个日期列表、百分比回报并对它们进行排序。
我遇到了一个使用 lambda 的解决方案,但我得到的只是这条消息:
return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object
您是否知道更简单的问题解决方案或错误是由什么引起的?我好像搞不懂。
任何赞赏:)
【问题讨论】:
-
就像错误说的那样,它期望字符串-y;
temp是一个列表。 -
@RafaelC: return sorted((arr1+arr2), key=lambda k: k.split(',')[0]) 这就是我在函数中所需要的,非常优雅。谢谢
-
删除了我之前的评论,很高兴你能及时看到哈哈 :) 很高兴我能帮上忙 :)
标签: python regex list sorting lambda