Python:使用zip处理二维列表切片实现柱状图累加底值遇错求解
解决方法
问题根源:
zip(topList[1:])是把切片得到的子列表的列表当成单个参数传给zip,但zip需要的是多个独立的可迭代对象(也就是你原来硬编码的topList[1], topList[2], ...),这才导致了错误。最简单高效的修复方式是用解包操作符
*,把切片里的子列表逐个传递给zip:bottom = [sum(item) for item in zip(*topList[1:])]这个写法和你原来硬编码的效果完全一致,还能自动适配
topList的长度,不用手动写一堆索引。如果偏好函数式风格,也可以用
map配合sum实现:bottom = list(map(sum, zip(*topList[1:])))逻辑和列表推导完全相同,只是写法更偏向函数式编程的风格。
内容的提问来源于stack exchange,提问作者IainMcE
相关产品推荐
相关产品推荐

