繁体   English   中英

同时使用多个索引时超出列表索引

[英]List index out of range when using more than one at the same time

我正在尝试获得一个更新的随机数图,就像一个学习练习一样(然后我可以传递真实数据)。

我编写了以下代码,希望最终得到一个元组列表(时间和随机数),然后可以将其拆分并作为轴传递给maplotlib。

def local_db_monitor(increment=10):
    import datetime
    import time
    import random
    import matplotlib
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    import pylab as pl

    time_list = []

    while True:
        now = datetime.datetime.utcnow().strftime('%H:%M:%S')
        rand_number = random.randint(1,100)

        time_rand = (now, rand_number)

        if len(time_list) >= increment:
            time_list.pop(0)
            time_list.append(time_rand)
        else:
            time_list.append(time_rand)

        items = zip(*time_list)

        x_val = list(items)[0]
        y_val = list(items)[1]

        print(x_val, y_val)

        # plt.plot(x_val, y_val)

        time.sleep(0.5) 

local_db_monitor()

我遇到的问题是与分隔元组列表。 我可以只获取日期,也可以获取随机数,但是两个索引似乎无法同时使用。

<ipython-input-119-e33785849b16> in local_db_monitor(increment)
     39 
     40         x_val = list(items)[0]
---> 41         y_val = list(items)[1]
     42 
     43         print(x_val)
IndexError: list index out of range

有人可以帮我了解这里发生的事情吗? 我正在使用iPython / Python 3。

您尝试索引一个zip对象,在python 3中zip返回一个迭代器,如果要索引它,则需要在项目上调用列表:

items = list(zip(*time_list))

或使用next(items)

items = zip(*time_list)
x_val, y_val = next(items),next(items)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM