首页 > 解决方案 > 与挑战作斗争

问题描述

我得到了两个清单:

list1 = ["A","B","C","D","E","F",1,"G",3,"H","I","J","K","L"]
list2 = [20 ,27 ,"Arm","Leg",13 ,24 ,"Head",75 ,64 ,71 ,"Ankle", 82 ,45 ,23 ]

使用尽可能短的代码,我需要创建一个字典(dictChallenge),其中只包含来自的字母list1和来自的数字list2

的输出print(dictChallenge)是:

{'A': 20, 'B': 27, 'E': 13, 'F': 24, 'G': 75, 'H': 71, 'J': 82, 'K': 45, 'L': 23 }

标签: python

解决方案


您可以zip将这两个列表放在一起,然后根据您的条件过滤该列表。然后,您可以在 dict 理解中使用该列表或将其传递给dict()

list1 = ["A","B","C","D","E","F",1,"G",3,"H","I","J","K","L"]
list2 = [20 ,27 ,"Arm","Leg",13 ,24 ,"Head",75 ,64 ,71 ,"Ankle", 82 ,45 ,23 ]

{k: v for k, v in zip(list1, list2) if isinstance(k, str) and isinstance(v, int)}

这给了你:

{'A': 20,
 'B': 27,
 'E': 13,
 'F': 24,
 'G': 75,
 'H': 71,
 'J': 82,
 'K': 45,
 'L': 23}

推荐阅读