Python有效地浏览列表
我目前正在从事python的一个考试项目,我必须制作一张choropleth地图,显示世界上所有不同的国家,以及它们的人口 我从api获取数据,并将数据存储在两个不同的列表中,我们称它们为a和b a包含如下所示的值:Python有效地浏览列表,python,python-3.x,Python,Python 3.x,我目前正在从事python的一个考试项目,我必须制作一张choropleth地图,显示世界上所有不同的国家,以及它们的人口 我从api获取数据,并将数据存储在两个不同的列表中,我们称它们为a和b a包含如下所示的值: a = [['Afghanistan', 'AF'], ['Åland Islands', 'AX'], ['Albania', 'AL'], ['Algeria', 'DZ'], ['American Samoa', 'AS'], ['Andorra', 'AD'], ['Ang
a = [['Afghanistan', 'AF'], ['Åland Islands', 'AX'], ['Albania', 'AL'], ['Algeria', 'DZ'], ['American Samoa', 'AS'], ['Andorra', 'AD'], ['Angola', 'AO']
b:
b = ['Afghanistan' 'AFRICA' 'Albania' 'Algeria' 'Angola'
我想创建一个名为c的新列表,它只包含出现的值
在这两个列表中
最让我困惑的是,“a”既包含国家名称,也包含国家名称
国家/地区代码,“b”包含单个值,并列列出
列表“c”应该看起来像这样:[“阿富汗”、“阿尔巴尼亚”、“阿尔及利亚”、“安哥拉”]
提前感谢您可以使用并使用以下工具展平第一个列表: 如果您不想导入itertools(以牺牲一点性能为代价):
您可以使用和展平第一个列表: 如果您不想导入itertools(以牺牲一点性能为代价):
我对python太陌生了,我不知道预定义的函数,我给你写我的逻辑。希望这项工作为你
a = [['Afghanistan', 'AF'], ['Åland Islands', 'AX'], ['Albania', 'AL'], ['Algeria', 'DZ'], ['American Samoa', 'AS'], ['Andorra', 'AD'], ['Angola', 'AO']]
b = ['Afghanistan' ,'AFRICA', 'Albania' ,'Algeria', 'Angola']
c=[]
for i in range(0,len(b)):
for j in range(0,len(a)):
if(b[i]==a[j][0]):
c.append(b[i])
break
print(c)
在python中玩得开心我对python太陌生了,我不知道预定义的函数,我给你写我的逻辑。希望这项工作为你
a = [['Afghanistan', 'AF'], ['Åland Islands', 'AX'], ['Albania', 'AL'], ['Algeria', 'DZ'], ['American Samoa', 'AS'], ['Andorra', 'AD'], ['Angola', 'AO']]
b = ['Afghanistan' ,'AFRICA', 'Albania' ,'Algeria', 'Angola']
c=[]
for i in range(0,len(b)):
for j in range(0,len(a)):
if(b[i]==a[j][0]):
c.append(b[i])
break
print(c)
在python中玩得开心吧一个建议:不需要直接展平,
A
可以直接有效地转换为dict
,然后您可以使用dict.keys()
作为第一个集合。但是如果第二个元素中有交集呢?在这个用例中应该没有关系,至少从OP描述的情况来看不是这样。我的计时显示这比链慢。从iterable来看,这个答案依赖于国家名称和代码从不相交的事实。虽然在实践中几乎可以肯定这一点,但形成一个混合语义类型集感觉有点笨拙。建议:无需直接展开,a
可以直接有效地转换为dict
,然后您可以使用dict.keys()
作为第一组元素。但是如果第二个元素中有交叉点呢?在这个用例中这不重要,至少从OP的描述来看不重要。我的计时显示这比链慢。从_iterable
这个答案依赖于国家名称和代码从不交叉的事实。虽然在实践中几乎可以肯定这一点,但形成一个混合语义类型集感觉有点笨拙。
a = [['Afghanistan', 'AF'], ['Åland Islands', 'AX'], ['Albania', 'AL'], ['Algeria', 'DZ'], ['American Samoa', 'AS'], ['Andorra', 'AD'], ['Angola', 'AO']]
b = ['Afghanistan' ,'AFRICA', 'Albania' ,'Algeria', 'Angola']
c=[]
for i in range(0,len(b)):
for j in range(0,len(a)):
if(b[i]==a[j][0]):
c.append(b[i])
break
print(c)