【问题标题】:nested for loop dictionary store values python nsepy嵌套for循环字典存储值python nsepy
【发布时间】:2019-07-16 23:45:00
【问题描述】:
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 时。其余所有先前的值都被覆盖。

【问题讨论】:

  • 您必须将不同的y 值与之前循环中的x 值区分开来。例如,您可以设置data[(x, y)] 而不是data[y]
  • 谢谢它的工作,我还需要问一件事。如何删除字典中的空值,因为它在周六和周日抛出空值
  • 我会添加一个条件以避免将其添加到您的字典中。
  • 可能是什么情况。试过 ifelse 但它没有按应有的方式工作。请提出建议。

标签: python pandas dictionary for-loop nsepy


【解决方案1】:

您必须将不同的 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
        ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2019-12-17
    相关资源
    最近更新 更多