Как я могу проверить, что индекс первого списка 1 больше, чем индекс второго списка 0, а индекс первого списка 2 больше, чем индекс второго списка 1. и так далее

#python #list #if-statement

Вопрос:

У меня есть три списка —

 High: [18365.5, 18979.25, 19297.4, 19874.8, 20288.0, 20504.65, 20398.2] Low: [17855.5, 18265.0, 18822.55, 18742.15, 19492.55, 20055.55, 20131.25] Close: [18317.05, 18969.95, 18857.6, 19804.0, 20260.15, 20285.0, 20215.7]  

И я хочу проверить

 if Close [index1] gt; Low [index0]  print("XYZ") elif Close[index1] lt; High[index0]  print("XYZ")  

и то же самое можно сказать и об остальных индексах, находящихся на закрытии.

 if Close [index2] gt; Low [index1]  print("XYZ") elif Close[index2] lt; High[index1]  print("XYZ")  

Пожалуйста, помогите мне решить эту проблему. Я не понимаю, как я могу это сделать.

Комментарии:

1. Не могли бы вы немного подробнее рассказать, чего вы здесь пытаетесь достичь, и что index0 , index1 , и index2 есть?

2. индекс 0, индекс 1, индекс 3-это просто индекс в списке.

3. Хорошо, так в чем же цель вашего кода? Поскольку в настоящее время все ваши if-else дела распечатаны XYZ , каков ожидаемый результат вашего кода?

4. Я хочу проверить, закрыто ли gt; Низко, затем напечатать(«S»), и если Закрыть gt;

5. Ладно, круто. В настоящее время ваш код, похоже, делает именно это. С какой проблемой вы столкнулись? Вы не получаете ожидаемого результата или появилось какое-то сообщение об ошибке?

Ответ №1:

Решение, как вы просили.

Правильным решением было бы проверить один и тот же индекс для всего списка, учитывая его фондовый рынок.

 high = [18365.5, 18979.25, 19297.4, 19874.8, 20288.0, 20504.65, 20398.2] low = [17855.5, 18265.0, 18822.55, 18742.15, 19492.55, 20055.55, 20131.25] close = [18317.05, 18969.95, 18857.6, 19804.0, 20260.15, 20285.0, 20215.7]   for i in range(len(high)-1):  if (close[i 1] gt; low[i]) and (close[i 1] lt; high[i]):  print("Valid Indices")  else:  print("Invalid: Correct Sequence: Low lt; Close lt; High")   

Предложение: Низкий =lt; Закрыть =

Ответ №2:

Вы можете zip выбрать три списка и повторить их. Убедитесь Close , что вы правильно нарезали, чтобы оценить правильные элементы:

 for (high, low, close) in zip(High, Low, Close[1:]):  if close gt; low:  print("S")  elif close lt; high:  print("L")  else:  continue