matplotlib Python:在2-D列表切片上使用zip

wlwcrazw  于 2023-08-06  发布在  Python
关注(0)|答案(1)|浏览(95)

我正在用非常大的二维数据列表制作一个条形图。我用以下代码硬编码了所有条形图:bottom=[sum(item) for item in zip(topList[1], topList[2], topList[3], ...)],效果很好。然后我有了一个想法,我可以使用一个子列表吗?这样我就可以迭代地创建条形图,提高可读性,并保存(视觉)空间。
但以下代码不起作用:bottom=[sum(item) for item in zip(topList[1:])]我得到了一个错误,切片是不可散列的,我把它分解,看看切片和只列出子列表之间的区别是什么,这是一个实际的列表本身,而列出的子列表没有封装在另一个结构中。有没有一种简单/有效的方法来从一个二维列表中创建一个元组列表,从切片中删除子列表,并以函数的方式将它们传递到zip中,或者其他一些解决方案来实现我的总体目标?

e4yzc0pl

e4yzc0pl1#

我认为你可以使用解包操作符ie星星将元组或列表解包为位置参数。

bottom=[sum(item) for item in zip(*topList[1:])]

字符串
如果topList使用哈希键,则可以改为遍历哈希键

bottom=[sum(item) for item in zip(*[topList[x] for x in range(1, n)])

相关问题