簡體   English   中英

如何編寫帶有字典的循環

[英]How to write a loop with a dictonary

我用鍵和值創建了字典,並想在一個循環中編寫一個循環:

for key,val in dict.items():
 def contains(x, y):
    result = np.nan
    for i in x:
        if i.lower() in y.lower():
            result = key
    return result
    df['Test'] = df['Countrylist'].apply(lambda x: contains([val], x))

因此,我想檢查“字典”中的值是否在“國家/地區列表”中,如果是,則為新的“列測試”提供“字典中的鍵的值”。

但是我的代碼不起作用...

預期產量:

Countrylist  Bla1 Bla2   Test
Germany       12  12    "Here should be the Key of the Dic"

每條評論:

def contains(x, y):
    for i in x:
        if i.lower() in y.lower():
            return True
    return False

for key,val in dict.items():
    df['Test'] = df['Countrylist'].apply(lambda x: key if contains([val], x) else np.nan)

同樣,由於您沒有提供輸入/輸出對,因此很難檢查它是否滿足您的要求。 特別是, contains(['foo', 'bar'], 'FOOTBALL') == True (可能是您想要的,但從函數名稱中看不出來)。

此外,請注意,此代碼在循環中多次重新分配了df['Test'] 該列的最終值取決於最后一次循環迭代(對於<= 3.5-3.6的Python版本,這不是您可以依賴的循環迭代, 請參閱此處的公認答案 )。

暫無
暫無

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

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