Проверьте арифметические значения найденных элементов

Как насчет:

 c(A = 1, B = 2)
A B 
1 2 
-1
задан keepomen 18 March 2019 в 13:36
поделиться

6 ответов

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
for index, list_AnyNumber in enumerate(AnyNumber):
    if index > 0:
        print(int(AnyNumber[index].text) > int(AnyNumber[index-1],text))

Или вы можете изменить цикл foreach на for in range()

0
ответ дан RnD 18 March 2019 в 13:36
поделиться

Вот один интересный подход. Скажите, что ваш список называется any_number_list. Затем Вы можете использовать следующий синтаксис:

sequence = [y - x for x, y in zip(any_number_list[:-1], any_number_list[1:]) if y - x < 0] 
if not sequence:
    print("Each element is greater than the previous one")

Вы упаковываете два массива, используя zip, и перебираете их, добавляя разницу к новому массиву с именем sequence, если разница меньше 0. Если в конце этот массив содержит любое число, то это не монотонно не падающая последовательность.

0
ответ дан Fejs 18 March 2019 в 13:36
поделиться

Я нашел решение, которое появилось на другом форуме.

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
buffer = 0
for AnyNumbers in AnyNumber:
    if int(AnyNumbers) > buffer:
        print('more than')
    elif int(AnyNumbers) < buffer:
        print('less than')
    else:
        print('is')
    buffer = int(AnyNumbers)
0
ответ дан keepomen 18 March 2019 в 13:36
поделиться
AnyNumber=['14','22','33', '41', '55']
x=len(AnyNumber)
for index, list_AnyNumber in enumerate(AnyNumber):
    if index < (x-1):
        if int(AnyNumber[index + 1]) > int(AnyNumber[index]):
            print(str(AnyNumber[index + 1]) + ">" + str(list_AnyNumber))

Основано на это пользователи ответили

0
ответ дан AG-W 18 March 2019 в 13:36
поделиться

Самый простой способ - отсортировать список, а затем сравнить с исходным списком. Они должны совпадать, если числа увеличиваются, как и ожидалось.

Первое, что вам нужно сделать, это преобразовать список строк в список int, затем отсортировать, а затем сравнить.

Простой пример,

list = ['10', '20', '30', '40', '50']
int_list = [int(i) for i in list]
print(int_list == sorted(int_list))

Это напечатает True, потому что исходный список отсортирован.

Чтобы увидеть неудачный случай,

list = ['50', '20', '30', '10', '40']
int_list = [int(i) for i in list]
print(int_list == sorted(int_list))

Ваш код будет выглядеть примерно как

list = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
int_list = [int(i.text) for i in list]
print(int_list == sorted(int_list))
0
ответ дан JeffC 18 March 2019 в 13:36
поделиться

Возьмите подсчет длины и используйте для цикла и, если условия. Надеюсь, это поможет

AnyNumber = driver.find_elements_by_xpath('//*[starts-with(@id, "popover-")]')
ncount=len(AnyNumber)
for l in range(ncount-1):
    if int(AnyNumber[l+1].text) > int(AnyNumber[l].text):
     print(int(AnyNumber[l+1].text))
0
ответ дан keepomen 18 March 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: