Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python有效地浏览列表_Python_Python 3.x - Fatal编程技术网

Python有效地浏览列表

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

我目前正在从事python的一个考试项目,我必须制作一张choropleth地图,显示世界上所有不同的国家,以及它们的人口

我从api获取数据,并将数据存储在两个不同的列表中,我们称它们为a和b

a包含如下所示的值:

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)