我有两个数组:
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))
