group
函数从另一个大组中获取pp
。我想让程序说如果pp
中存在rr
中的任何元素,我想拒绝它并再次调用pick函数。如果不在rr
列表中添加pp
。在
我有两张这样的单子:
rr = [[1,2], [3,4], [5,6], [7,8]]
pp = [[7,9], [10, 11]]
我有这个功能:
^{pr2}$这里rr
包含{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)
它仍然会在没有任何输出的情况下永远运行。在
这是我的解决方案,有效,但我无法回答:
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)
如果从两个列表签入单个整数,可以执行以下操作:
我不太清楚你在找什么。
但也许这是你可以利用的东西:
itertools只是将“检查列表”变平,因此更容易处理数字。然后简单地迭代这些并检查
rr
对包含无效数字。将这些无效对存储在ignore
中。在如果您不想忽略一对,只需跳过忽略部分。
但它将确保
[7, 8]
不属于您的结果中-例如,如果您的pp
看起来像这样:pp = [[7,9], [8, 11]]
另一种方法是[免责声明:由于其他人我不完全确定我是否正确理解了您的问题,如果您不想回答,请留言]。在
如果}将被追加。在
rr
中的任何值也出现在pp
中,pp
将不被追加,否则{输出:
^{pr2}$相关问题 更多 >
编程相关推荐