Проверьте, содержится ли список A в списке B

Пропустите в самом элементе этот this в html и просто используйте этот параметр в своем javascript вместо this. Также вам нужно использовать .is с селектором :checked, а не только clicked. Я также изменил значение .changed() на .clicked(), так как в этом случае это одно и то же событие. Вы также можете рассмотреть возможность изменения id в inactive / active как class, поскольку все id s должны быть уникальными.

function but_clicked(e) {
  if (e.id == "active") {
    e.id = "inactive";
    console.log(e.id);
  } else {
    e.id = "active";
    console.log(e.id);

  }
}

function tclick(e) {
  if (e.id == "clicked") {
    e.id = "empty";
    console.log(e.id);
  } else {
    e.id = "clicked";
    console.log(e.id);

  }
}
$(document).ready(function() {
  $('.toggler').click(function() {
    if($('.toggler').is(':checked')) {
      $('#inactive').hide();
      $('#active').show();
    } else {
      $('#active').show();
      $('#inactive').show();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" class="toggler" id="clicked" onclick="tclick(this)">click here to sort

<p><input type="checkbox" id="inactive" onClick="but_clicked(this)">Hello1</p>
<p><input type="checkbox" id="inactive" onClick="but_clicked(this)">Hello2</p>
<p><input type="checkbox" id="inactive" onClick="but_clicked(this)">Hello3</p>

7
задан Daniel Standage 19 January 2019 в 15:07
поделиться

5 ответов

Используйте any с нарезкой списка:

def contained_in(lst, sub):
    n = len(sub)
    return any(sub == lst[i:i+n] for i in range(len(lst)-n+1))

Или используйте join для объединения обоих списков в строки и используйте оператор in:

def contained_in(lst, sub):
    return ','.join(map(str, sub)) in ','.join(map(str, lst))

[119 ] Использование :

>>> contained_in([1, 2, 3, 4, 5], [2, 3, 4])
True
>>> contained_in([1, 2, 2, 4, 5], [2, 3, 4])
False
0
ответ дан Austin 19 January 2019 в 15:07
поделиться

Учитывая, что вам нужно сохранить порядок:

def contains(sub_array, array):
    for i in range(len(array)-len(sub_array)+1):
        for j in range(len(sub_array)):
            if array[i+j] != sub_array[j]:
                break
        else:
            return i, i+len(sub_array)
    return False
0
ответ дан Cyzanfar 19 January 2019 в 15:07
поделиться

Используйте эту функцию

Я пытался не усложнять ее

def contains(list1,list2):

    str1=""
    for i in list1:
        str1+=str(i)

    str2=""
    for j in list2:
        str2+=str(j)

    if str1 in str2:
        return True

    else:
        return False

Надеюсь, что это работает

0
ответ дан Talha Israr 19 January 2019 в 15:07
поделиться

Вы можете создать объединение двух списков в две разные строки. Затем напишите функцию, чтобы проверить, находится ли одна строка в другой.

def containedin(a, b):
 if b in a:
  return True
 return False`
0
ответ дан Cyzanfar 19 January 2019 в 15:07
поделиться

Многие люди опубликовали свои ответы. но я все равно хочу опубликовать свои усилия;) это мой код:

def containedin(a,b):
    for j in range(len(b)-len(a)+1):
        if a==b[j:j+len(a)]:
            return True
    return False

print(containedin([2, 3, 4],[1, 2, 3, 4, 5]))
print(containedin([2, 3, 4],[1, 1, 2, 2, 3, 3, 4, 4, 5, 5]))
print(containedin([2, 3, 4],[5, 4, 3, 2, 1]))
print(containedin([2, 2, 2],[1, 2, 3, 4, 5]))
print(containedin([2, 2, 2],[1, 1, 1, 2, 2, 2, 3, 3, 3]))

это вывод: True False False False True

0
ответ дан Dariush 19 January 2019 в 15:07
поделиться
Другие вопросы по тегам:

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