错误:-解包的值太多(预期为2)python函数
我的代码:-
Videos10k=[{'title': '', 'titleWords': ['...','...'], 'titleLength': 10, 'likes': 86, 'disLikes': 5, 'views': 2202, 'creator': '...', 'description': '...'}]
def getavg(number, array=[]):
views_avg = 0
for idx, Video in array:
views = Video["views"]
views_avg = views_avg + views
views_avg = views_avg / len(array)
print("Average views for " + number + " " + views_avg)
getavg("10k", Videos10k)
我收到此错误。错误:-
在 idx 的 getavg 中,数组中的视频:ValueError:要解压的值太多(预期为 2)
回答
您需要仅使用 Video 而不是使用 idx、Video 获取数组中的项目
Videos10k=[{'title': '', 'titleWords': ['...','...'], 'titleLength': 10, 'likes': 86, 'disLikes': 5, 'views': 2202, 'creator': '...', 'description': '...'}]
def getavg(number, array=[]):
views_avg = 0
for Video in array:
views = Video["views"]
views_avg = views_avg + float(views)
views_avg = views_avg / len(array)
print("Average views for " + str(number) + " " + str(views_avg))
或者你可以改成这样
for idex, Video in enumerate(array):
回答
enumerate 函数给出索引号。
更改您的代码,如下所示
for idx, Video in enumerate(array):
- Just to mention that actually `idx` is never used anywhere else in the code, i.e. it's redundant.