问题描述
sudo service apache2 restart
A=[(1,Poland),(2,Canada),(3,Germany)]
B=[(1,16),20),54)]
我找到了This,但是这个答案是从2015年开始的,也许您知道更好的解决方案。我的数据最多为10/20元组,因此我们不会处理庞大的数据集
解决方法
如果在示例中总是对元组进行排序,那么这是一个简单的情况,您可以简单地使用zip
:
C = []
for a,b in zip(A,B):
C.append(a[1],b[1])
# or simply C = [(a[1],b[1]) for a,B)]
如果不能保证顺序(实际上使第一个数字成为必需),我将首先将一个列表转换为dict,然后简单地将两对匹配:
b_dict = dict(B)
C = []
for i,country in A:
C.append((country,b_dict[i]))
# or C = [(country,b_dict[i]) for i,country in A]
当然,这可能需要处理一些极端情况,但我将留给您。
,这可能是一个解决方案。
[(x[1],y[1]) for y in B for x in A if x[0] == y[0]]
,
这似乎是pandas的问题。您可以将它们变成pandas.Series()
对象或pandas.DataFrame()
,并将元组的第一个数字作为索引。然后只需使用pandas.DataFrame.merge()
按索引合并,您将获得三列数据框或系列。
或者,它必须是一个嵌套循环:
C = []
for i in A:
for j in B:
if i[0] == j[0]:
C.append((i[1],j[1]))