2017-09-14 60 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 

您还应该确保你调用函数作为安倍晋三说。也没有必要传递一个值到这个函数。