python - 如何将两个列表(如果一个是具有多个列表的元组)连接到字典中……
问题描述
...通过仅获取第一个列表中存在的项目?
countries = ['PAN','ARG','NGA','KOR','SRB','BIH']
country_data = [
('arg', 'Argentina', 'SouthAmerica', 41.2238883972168),
('geo', 'Georgia', 'Asia', 4.231660842895509),
('kor', 'South Korea', 'Asia', 49.5528564453125),
('swz', 'Swaziland', 'Africa', 1.2028429508209229),
('cog', 'Republic of the Congo', 'Africa', 4.386693000793457),
('srb', 'Serbia', 'Europe', 7.291436195373535),
('pan', 'Panama', 'NorthAmerica', 3.643222093582153),
('ita', 'Italy', 'Europe', 59.72980880737305),
('dma', 'Dominica', 'NorthAmerica', 0.07143999636173247),
('nga', 'Nigeria', 'Africa', 158.57826232910156),
('bih', 'Bosnia and Herzegovina', 'Europe', 3.722084045410156)]
countries = [item.lower() for item in countries]
Input1 = countries
Input2 = country_data
for elm2 in Input2:
for elm1 in Input1:
if elm2[key[1]] == elm1[key[1]]:
break
else:
Input1.append(elm2)
我首先将列表国家/地区中的元素设置为小写,以便可以比较它们,但是当我尝试获取数据时出现错误。将两个列表转换为仅包含列表国家键值的字典的更好方法是什么?
解决方案
countries = ['PAN','ARG','NGA','KOR','SRB','BIH']
country_data = [
('arg', 'Argentina', 'SouthAmerica', 41.2238883972168),
('geo', 'Georgia', 'Asia', 4.231660842895509),
('kor', 'South Korea', 'Asia', 49.5528564453125),
('swz', 'Swaziland', 'Africa', 1.2028429508209229),
('cog', 'Republic of the Congo', 'Africa', 4.386693000793457),
('srb', 'Serbia', 'Europe', 7.291436195373535),
('pan', 'Panama', 'NorthAmerica', 3.643222093582153),
('ita', 'Italy', 'Europe', 59.72980880737305),
('dma', 'Dominica', 'NorthAmerica', 0.07143999636173247),
('nga', 'Nigeria', 'Africa', 158.57826232910156),
('bih', 'Bosnia and Herzegovina', 'Europe', 3.722084045410156)]
filtered_countries = [country for country in country_data
if country[0].upper() in countries]
print(filtered_countries)
输出:
[('arg', 'Argentina', 'SouthAmerica', 41.2238883972168), ('kor', 'South Korea', 'Asia', 49.5528564453125), ('srb', 'Serbia', 'Europe', 7.291436195373535), ('pan', 'Panama', 'NorthAmerica', 3.643222093582153), ('nga', 'Nigeria', 'Africa', 158.57826232910156), ('bih', 'Bosnia and Herzegovina', 'Europe', 3.722084045410156)]
推荐阅读
- java - Java/Spring 启动 - POST 请求不起作用后重定向
- c# - 我们可以在带有 MongoDB c# 驱动程序的投影中使用多个嵌套级别吗?
- python - 添加if语句时python循环中的倒数函数
- mysql - MySQL如何在字符串中查找url并从中删除一个字符?
- python - 如何用整数系数进行多项式除法
- html - 在同一 div 中的多个三角形中完美居中文本(响应式)
- flutter - 如何将 api 插入需要 api 代码的颤振应用程序中?
- javascript - Tampermonkey/Chrome:鼠标悬停,Ctrl+C → 复制超链接(原标题)
- python - 我如何解决这个十亿迭代和?欧拉计划问题 94,Python
- php - 已解决:LDAP 连接在 CLI 中正常,在 PHP-FPM 中失败