比较两个列表并创建一个列表

时间:2014-02-25 23:30:33

标签: python

我还在努力学习编程,所以请帮我简化一下。我正在尝试运行查看列表中索引的内容,如果找到1返回“yay”(仅用于调试目的)。这是我到目前为止所做的:

def replaceValues(distList, indexList):

    for i in range (1,len(indexList)):

        if indexList[i] = 1
    return "yay!"

但是,每次运行时都会出现语法错误,这会强调1.请帮忙!

谢谢!

4 个答案:

答案 0 :(得分:4)

除了不正确的缩进(在下面修复)之外,当你使用=时,你正在使用==,而你从if语句中遗漏了一个冒号。

=用于分配值

==评估相等性(返回一个布尔值,即TrueFalse

你在if语句中遗漏了:

更正后的代码:

def replaceValues(distList, indexList):

    for i in range (1,len(indexList)):
        if indexList[i] == 1:
            return "yay!"

如果您不完全理解Python如何使用空格/缩进作为其语法/结构和其他语法基础的不可或缺的一部分,那么您需要继续使用ie教程..快速谷歌应该出现很多。我建议UdacityCodeacademy

答案 1 :(得分:2)

我看到三个语法错误。

首先,you're using the = sign (assignment) when you need == (comparison)

其次,您在if声明的末尾错过了冒号。

最后,必须* 在您的if声明之后有一个缩进块。

总之,它应该是这样的:

if indexList[i] == 1: # double-equals and colon
    return "yay!" # This must be indented to the proper level

你应该去看看tutorials;这是所有在那里布置得非常好的东西,并且在Python中做任何事情都是至关重要的。


*从技术上讲,您也可以在同一行上使用表达式if语句(例如if 1: pass)。但是,我个人认为这几乎在每种情况下都是可怕的。

答案 2 :(得分:0)

=是一个赋值语句。例如:

name = "tyler"

您应该使用==来检查基元的相等性(您要比较整数,它们是基元)。


切换:

if indexList[i] = 1

为:

if indexList[i] == 1

答案 3 :(得分:0)

试试这样:

def replaceValues(distList, indexList):
    for k in range(1, len(indexList)):
        if indexList[k] == 1:            
            return "yay!"