Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在给定日期范围的情况下,如何为包含股票信息的命名偶列表编制索引?_Python_List_Date_Namedtuple - Fatal编程技术网

Python 在给定日期范围的情况下,如何为包含股票信息的命名偶列表编制索引?

Python 在给定日期范围的情况下,如何为包含股票信息的命名偶列表编制索引?,python,list,date,namedtuple,Python,List,Date,Namedtuple,我有一个名为tuples的列表,我想根据给定的日期范围对其进行索引。例如,给定2019-11-10(开始日期)和2019-11-08(结束日期),我想返回一个仅包含该日期范围内信息的namedtuple列表。我该怎么做?谢谢你未经测试,但类似于: [Stock(date='2019-11-20', open='150.3100', high='150.8400', low='148.9600', close='148.9700', volume='11291822', indicator=0,

我有一个名为tuples的列表,我想根据给定的日期范围对其进行索引。例如,给定2019-11-10(开始日期)和2019-11-08(结束日期),我想返回一个仅包含该日期范围内信息的namedtuple列表。我该怎么做?谢谢你

未经测试,但类似于:

[Stock(date='2019-11-20', open='150.3100', high='150.8400', low='148.9600', close='148.9700', volume='11291822', indicator=0, signal='', change=0), Stock(date='2019-11-19', open='150.8800', high='151.3300', low='150.2000', close='150.3900', volume='23935700', indicator=0, signal='', change=0), Stock(date='2019-11-18', open='150.0700', high='150.5500', low='148.9800', close='150.3400', volume='21534000', indicator=0, signal='', change=0), Stock(date='2019-11-15', open='148.9300', high='149.9900', low='148.2700', close='149.9700', volume='23485700', indicator=0, signal='', change=0), Stock(date='2019-11-14', open='147.0200', high='148.4100', low='147.0000', close='148.0600', volume='19729800', indicator=0, signal='', change=0), Stock(date='2019-11-13', open='146.7400', high='147.4600', low='146.2800', close='147.3100', volume='16919200', indicator=0, signal='', change=0), Stock(date='2019-11-12', open='146.2800', high='147.5700', low='146.0600', close='147.0700', volume='18641600', indicator=0, signal='', change=0), Stock(date='2019-11-11', open='145.3400', high='146.4200', low='144.7300', close='146.1100', volume='14362600', indicator=0, signal='', change=0), Stock(date='2019-11-08', open='143.9800', high='145.9900', low='143.7600', close='145.9600', volume='16732700', indicator=0, signal='', change=0), Stock(date='2019-11-07', open='143.8400', high='144.8800', low='143.7700', close='144.2600', volume='17786700', indicator=0, signal='', change=0)]
从日期时间导入日期时间
格式=“%Y-%m-%d”
start=datetime.strtime('2019-11-08',格式)
end=datetime.strtime('2019-11-10',格式)
#简明版
输出=过滤器(lambda tup:start

请注意,您从第10个开始,到第8个结束,我假设这是一个输入错误,然后切换。你可能还想要>=谢谢你,我想出来了!只需要稍微修改一下:tup.date和output.append(tup)很酷,很乐意帮助。如果这对你有效,请接受它作为答案,这样其他人知道问题已经被回答。
from datetime import datetime

format = '%Y-%m-%d'
start = datetime.strptime('2019-11-08', format)
end = datetime.strptime('2019-11-10', format)

# concise version
output = filter(lambda tup: start < datetime.strptime(tup['date'], format) < end, your_list_of_tuples)

# verbose version
output = []
for tup in your_list_of_tuples:
  date = datetime.strptime(tup['date'], format)
  if start < date < end:
    output += date