在Python中,如何相互除以两个列表的列表?
我有两个列表,内容如下:
volB = [(Tarp, 3440, 7123), (Greg, 82, 1083)]
和
# 500B = [(Tarp, 85, 203), (Greg, 913, 234)]
B500 = [(Tarp, 85, 203), (Greg, 913, 234)]
我想把第二个元素相互除一下。比如,我想把3440除以85,把82除以913,依此类推。谢谢大家的帮助!
2 个回答
-1
或者说得不那么好看,但:
lA = [('A',123,11),('B', 1, 11)]
lB = [('B',12,11),('A', 1, 11)]
res = {}
for x,y,z in (lA+lB):
if not x in res:
res[x] = y
continue
res[x] = res[x] / (y * 1.0)
根据评论进行了编辑,使其更符合Python的风格(注意Sven的解决方案被选为基础):
from operator import itemgetter
lA = [('A',123,11),('B', 1, 11)]
lB = [('B',12,11),('A', 1, 11)]
[float(x[1])/float(y[1]) for x,y in zip(sorted(lA,key=itemgetter(0)), sorted(lB,key=itemgetter(0)))]
7
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用某个库时,发现它的某个功能不太好用,或者遇到了错误。这种情况下,大家通常会去网上寻找解决方案,像StackOverflow这样的论坛就是一个很好的地方。
在这些论坛上,很多人会分享他们的经验和解决办法。比如,有人可能会说:“我在使用这个库的时候,遇到了这个问题,我是这样解决的……”这样可以帮助其他人更快地找到答案。
总之,编程过程中遇到问题是很正常的,利用好网络资源,向其他人请教,往往能让我们更快地解决问题。
from __future__ import division
quotients = [x[1] / y[1] for x, y in zip(list1, list2)]