在python列表中查找下一个实体

2024-10-03 04:37:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python比较陌生,我在网上搜索过答案,但找不到答案。你知道吗

下面的程序要求用户输入若干输入,然后要求他们输入一个长度等于输入数的整数列表。 然后程序遍历列表,如果数字小于ToyValue,并且小于列表中的下一项,则变量ToyValue增加1。你知道吗

NoOfToys=0
ToyValue=0
NumOfTimes=int(input("Please enter No of inputs"))
NumberList=input("Please enter Input")
NumberList=NumberList.split(" ")
print(NumberList)
for i in NumberList:
    if int(i)>ToyValue:
        ToyValue=int(i)
    elif int(i)<ToyValue:
        if int(i)<int(i[i+1]):
            NoOfToys=NoOfVallys+1
            ToyValue=int(i[i+1])
    else:
        pass
print(NoOfVallys)

下面是一些数据和预期输出的示例。你知道吗

#Inputs
8
4 6 8 2 8 4 7 2
#Output
2

我相信我对i[i+1]行有问题,因为我无法获得列表中的下一项

我已经看过命令next(),但我认为它在这种情况下对我没有帮助。你知道吗

感谢您的帮助!你知道吗


Tags: 答案用户程序列表inputifintprint
1条回答
网友
1楼 · 发布于 2024-10-03 04:37:52

列表中的项目和项目中的索引值混淆了。您需要做的是在一个范围内进行迭代,以便您能够可靠地处理索引值:

NoOfToys = 0
ToyValue = 0
NumOfTimes = int(input("Please enter No of inputs"))
NumberList = input("Please enter Input")
NumberList = NumberList.split(" ")
print(NumberList)
for i in range(0, len(NumberList)):
    value = int(NumberList[i])
    if value > ToyValue:
        ToyValue = value
    elif value < ToyValue:
        if (i + 1) < len(NumberList) and value < int(NumberList[i + 1]):
            NoOfToys = NoOfVallys + 1
            ToyValue =  int(NumberList[i + 1])
    else:
        pass
print(NoOfVallys)

当没有“下一个项目”时,你必须在列表的末尾小心。注意第二个“如果”的额外检查允许这样做。你知道吗

其他一些观察结果:

  • 您没有使用NumOfTimes输入
  • 你关于NoOfVallys和NoOfToys的逻辑是不对的,因为NoOfVallys从来没有被设置为任何东西,NoOfToys也从来没有被使用过
  • 为了获得正确的Python编码风格,应该使用以小写字母开头的标识符
  • 代码中的“else:pass”部分是不必要的

相关问题 更多 >