我试图获得随机数的更新图,就像学习练习一样(我可以传递实际数据)。
我编写了以下代码,希望最终得到一个元组列表(时间和随机数),然后我可以将其拆分并作为轴传递给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。
答案 0 :(得分:0)
您正在尝试索引zip
对象,在python 3 zip中返回一个迭代器,如果要对其进行索引,则需要调用项目列表:
items = list(zip(*time_list))
或使用next(items)
:
items = zip(*time_list)
x_val, y_val = next(items),next(items)