嵌套for循环字典存储值python nsepy

2024-06-25 05:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

startdate = datetime.date(2018,1,1)
expirydate = datetime.date(2018,1,4)
data = dict()

for x in range(0,3):
    for y in range(1,8):
        data [y] = get_history(symbol="BANKNIFTY",
                        start= startdate,
                        end= startdate,
                        index=True,
                        option_type='CE',
                        strike_price= 27000,
                        expiry_date=expirydate)
        startdate += datetime.timedelta(days=1)

    expirydate += datetime.timedelta(days=7)

循环工作得很好,但只给出最后一组值,即当x=3时。Rest覆盖所有以前的值。你知道吗


Tags: infordatagetdatetimedaterangesymbol
1条回答
网友
1楼 · 发布于 2024-06-25 05:18:49

您必须将不同的y值与前面的x值循环中的值区分开来。例如,您可以设置data[(x, y)]而不是data[y]。为了避免添加空值,只需在将值设置到字典之前添加条件以检查值:

for x in range(0,3):
    for y in range(1,8):
        val = get_history(symbol="BANKNIFTY",
                        start= startdate,
                        end= startdate,
                        index=True,
                        option_type='CE',
                        strike_price= 27000,
                        expiry_date=expirydate)
        if val:
            data[(x, y)] = val
        ...

相关问题 更多 >