2017-09-14 55 views
0

我發現很難修改列表中的某些項目。 我得到與數據庫中的表,我想字符串值(我會考慮爲缺失值)轉換爲99修改列表中的項目不會給出任何輸出

database = [2,5,11,33,78498,'abcqwe',13, 18,11,1993,'defrty'] 

def missing_values(i): 
    for i in database: 
     if type(i) == str: 
      i = 99 
    return 'Database cleaned' 

當我運行它,有沒有語法錯誤,即使「數據庫清理「不出現。如果我打印(數據庫),我發現沒有任何變化。我做錯了什麼?

回答

0

您需要確保您的文件正在調用您的missing_values()函數,否則代碼將永遠不會執行。

missing_values()

而且,看到你定義在同一範圍內database變量missing_values你不需要爭論i

0

您看不到清單清單的原因是因爲您清理後沒有返回清單,而只是打印留下原始清單的msg。

database = [2,5,11,33,78498,'abcqwe',13, 18,11,1993,'defrty'] 

def missing_values(i): 
    for i in database: 
     if type(database[i]) == str: 
      database[i] = 99 
    print 'Database cleaned' 
    return database 

此外,您還需要將函數中使用的參數從「我」更改爲「數據庫」。我認爲「我」參數應該是需要清潔的清單。

0

你沒有正確地調用你的功能。確保您的代碼missing_values()已被調用。

2

在該功能中,您將i設置爲99,但絕不會是您列表中的值。當您設置i = 99,你應該先在列表中該值的指數,那麼這樣設置值:

database[database.index(i)] = 99 

您還應該確保你調用函數作爲安倍晉三說。也沒有必要傳遞一個值到這個函數。