Skip to main content
 首页 » 编程设计

python之比较两个数组导致第三个数组

2025年05月04日10dyllove98

我有两个数组:

firstArray=[['AF','AFGHANISTAN'],['AL','ALBANIA'],['DZ','ALGERIA'],['AS','AMERICAN SAMOA']] 
secondArray=[[1,'AFGHANISTAN'],[3,'AMERICAN SAMOA']] 

所以我只需要一个像这样的数组

thirdArray=[[1,'AF'],[3,'AS']] 

我尝试了 any(e[1] == firstArray[i][1] for e in secondArray) 如果两个数组的第二个元素匹配,它返回 True 和 false。但我不知道如何构建第三个阵列。

请您参考如下方法:

首先,将 firstArray 转换为以国家为键,缩写为值的字典,然后使用列表在 secondArray 中查找每个国家的缩写理解:

abbrevDict = {country: abbrev for abbrev, country in firstArray} 
thirdArray = [[key, abbrevDict[country]] for key, country in secondArray] 

如果您使用的是没有 dict comprehensions 的 Python 版本(2.6 及以下),您可以使用以下命令创建 abbrevDict:

abbrevDict = dict((country, abbrev) for abbrev, country in firstArray) 

或者更简洁但可读性较差的:

abbrevDict = dict(map(reversed, firstArray))