在一个序列中,如何比较两个添加的变量?

in a sequence, how to compare two added variables?

提问人:stuck overflawed 提问时间:11/3/2022 更新时间:11/3/2022 访问量:62

问:

问题更具体。 在给定的列表序列中。我要比较的数字是一个变量(我们称之为当前变量)和当前变量之前的变量(我们称之为变量之前)。这意味着,如果当前变量的索引为 1,则 before 变量为 0。 但我希望当前变量的索引将是列表中的最后一个变量。此外,“当前变量”由用户输入给出。 输入在循环中运行,因此不断有新的“列表中的最后一个变量”。因此,我总是需要比较新变量。 最终,在能够比较这些变量之后,我想比较它们的值。 如果它们的值相等,则程序执行某些操作,否则程序会照常继续。

这里的问题是,我正在为如何比较这些变量而苦苦挣扎。 虽然我并没有为比较他们的价值观而苦苦挣扎。

我写了两个不同的脚本,在尝试解决上述问题时,在两个脚本中我遇到了不同的问题。

第一个:

    list_= []
    n = 0
    loop = True
    while(loop == True):
     current_variable = input("what is your current variable?")
     if(list_[n]==list_[n+1]):
       print("the two values are equal")
     else:
      list_.append(current_variable)
      n = n+1

在这里我收到一个错误“列表索引超出范围”。我明白了这个问题,并创建了一个新脚本: 在列表中,我添加了变量。 对脚本的唯一更改是:

       list_= ["solving the problem", "again solving the problem"]

在这里我遇到了一个问题,由于某种原因,消息“两个值相等”仅在第三次输入后打印,或者当输入仅在第二次输入后“再次解决问题”时打印。 为什么是第三个??

python list 循环 比较 序列

评论

0赞 matszwecja 11/3/2022
list_[-1]始终是列表中的最后一个元素,并且始终是最后一个元素之前的元素(当然,假设它们存在)。list_[-2]

答:

1赞 quamrana 11/3/2022 #1

你的程序有很多问题,很难知道从哪里开始。

如果您只是在列表的末尾添加内容或处理列表的最后一个元素,则不需要索引。n

你可以是,因为你从不改变.whilewhile True:loop

您正在尝试比较列表中的最后两项: ,但忽略了用户输入的新项。您应该与列表的末尾进行比较。list_[n]==list_[n+1]current_variable

此外,您不会对列表执行任何操作,因此我的程序只是打印列表,以便您可以知道它在做什么。

list_ = []
while True:
     print(list_)
     current_variable = input("what is your current variable?")
     if not list_ or list_[-1] != current_variable:
         list_.append(current_variable)
         continue
     print("the two values are equal")

生产线:将两个步骤合二为一。检查列表是否为空。如果是,则允许您不加检查地将其添加到列表中。否则,它会将最后一项与 进行比较,如果它们不同,您可以将其添加到 .if not list_ or list_[-1] != current_variable:not list_current_variablecurrent_variablelist_