簡體   English   中英

Python有效地瀏覽列表

[英]Python looking through a list effectively

我目前正在使用python進行一個考試項目,在這里我必須制作一個Choropleth地圖,以顯示世界上所有不同的國家以及它們的人口。

我從api獲取數據並將其存儲在2個不同的列表中,我們將它們稱為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.chain.from_iterable展平第一個列表,並使用set交集

>>> set(itertools.chain.from_iterable(a)) & set(b)
set(['Afghanistan', 'Albania', 'Angola', 'Algeria'])

如果您不想導入itertools(以犧牲一些性能為代價):

>>> set([i for j in a for i in j]) & set(b)
set(['Afghanistan', 'Albania', 'Angola', 'Algeria'])

我對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中玩得開心

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM