在Python中,如何相互除以两个列表的列表?

1 投票
2 回答
3332 浏览
提问于 2025-04-16 20:33

我有两个列表,内容如下:

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)]

撰写回答