我有以下一段代码:
results["date"] = []
results["x"] = []
results["y"] = []
results["z"] = []
results["t"] = []
for pv in list(pvlist):
results["date"].append(pv.date)
results["x"].append(pv.x)
results["y"].append(pv.y)
results["z"].append(pv.z)
results["t"].append(pv.t)
我想循环遍历所有pv并将数据添加到端点的输出中。代码看起来非常丑陋,就像这样…有更好的选择吗?
您可以这样做:
for pv in pvlist: # pvlist is an iterable already
for key in ("date", "x", "y", "z", "t"):
results.setdefault(key, []).append(getattr(pv, key))
这将取代你发布的整个代码片段。它通过将5个键/属性中的每个键/属性放入循环中来替换重复的代码,并在需要时惰性地创建空列表。