根据不同的参数迭代列表

Iterating on a list based on different parameters

我再次寻求有关遍历列表的帮助。这是我这次遇到的问题:

我有这个table:

其中包含国家的各种组合及其相关贸易流量。

由于贸易是双向的,例如我的列表有一个 ALB-ARM 值(当年阿尔巴尼亚与亚美尼亚的贸易额),然后在列表下方有另一个 ARM-ALB 值(相反)。

我想将每对国家的这两个贸易值相加;我一直在尝试使用一些代码,但我很快意识到我的所有方法都是错误的。

我该如何设置?我觉得用循环太难了,用一些我什至不知道存在的函数会很容易。

Table 格式的示例数据:

from astropy.table import Table
country1 = ["ALB","ALB","ARM","ARM","AZE","AZE"]
country2 = ["ARM","AZE","ALB","AZE","ALB","ARM"]
flow = [500,0,200,300,90,20]

t = Table([country1,country2,flow],names=["1","2","flow"],meta={"Header":"Table"})

预期输出为:

trade = [700,90,700,320,90,320]
result = Table([country1,country2,flow,trade],names=["1","2","flow","trade"],meta={"Header":"Table"})

提前谢谢大家

也许这会有所帮助:

country1 = ["ALB","ALB","ARM","ARM","AZE","AZE"]
country2 = ["ARM","AZE","ALB","AZE","ALB","ARM"]
flow = [500,0,200,300,90,20]
trade = []


pairs = map(lambda t: '-'.join(t), zip(country1, country2))
flow_map = dict(zip(pairs, flow))
for left_country, right_country in zip(country1, country2):
    trade.append(flow_map['-'.join((left_country, right_country))] + flow_map['-'.join((right_country, left_country))])

print(trade)

输出:

[700, 90, 700, 320, 90, 320]