Функция group
забирает pp
из другой большой группы.Я хочу, чтобы программа сообщила, что в rr
существуют какие-либо элементы из pp
, я хочу отказаться от нее и снова вызвать функцию pick.Если не добавить rr
список с pp
.
, у меня есть два списка, например:
rr = [[1,2], [3,4], [5,6], [7,8]]
pp = [[7,9], [10, 11]]
, и у меня есть эта функция:
for i in pp:
for j in i:
for k in rr:
for h in k:
while h == j:
pp = group(seq, 2)
else:
rr.append(pp)
Здесьrr
содержит 7, которые существовали в pp
, должны быть отклонены.но проблема в том, что это все-таки принято.и rr
все еще добавляется этим неправильным pp
.
Если я сделаю так:
for i in pp:
for j in i:
for k in rr:
for h in k:
while h == j:
pp = group(seq, 2)
rr.append(pp)
else:
rr.append(pp)
Он будет работать вечно без вывода.
thisэто мое решение, оно работает, но я не могу выразить это в ответе:
rr1 = [[1,2], [3,4], [5,6], [7,8]]
pp1 = [[7,9], [10, 11]]
# if any(p in rr for p in pp):
# print("cant append") #this will send it back to the function to pick up new pp
# elif any((i in p for i in range(len(pp))) in (j in rr for j in range(len(rr))) for p in pp ):
# print("cant append")
# else:
# rr.extend(pp)
def is_true(pp , rr):
for i in pp:
for j in rr:
if any(p in j for p in i):
return False
return True
def ext (pp , rr , tt ):
if tt == True:
rr.extend(pp)
else:
print("cant append")
tt = is_true(pp1, rr1)
ext(pp1, rr1, tt)
print(rr1)