Нахождение следующей сущности в списке Python - PullRequest
0 голосов
/ 13 февраля 2019

Я относительно новичок в python, и я искал ответ в Интернете, но не могу его найти.

Программа ниже запрашивает у пользователя ряд входных данных, а затем просит их ввестисписок целых чисел длины, равной количеству входов.Затем программа выполняет итерацию по списку, и если число меньше, чем ToyValue, и меньше, чем следующий элемент в списке , то переменная ToyValue увеличивается на единицу.

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(), но я не думаю, что она поможет мне в этой ситуации.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 13 февраля 2019

Вы путаетесь между элементами в списке и индексными значениями в элементах.Что вам нужно сделать, так это перебрать диапазон, чтобы иметь дело со значениями индекса:

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 вы должны использовать идентификаторы, которые начинаются с строчных букв
  • "остальное: передать часть вашего кода не нужно
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...