标题有点模糊,这是我的问题。
我试图根据另一个列表中项目左右的值来减少一个列表的内容。
一个例子:
如果我有以下2个列表。
a = [1,2,3,5,7,8]
b = [1,2,3,4,7]
我的约束是a = b + 1
我想返回
a = [2,3,5,8]
b = [1,2,4,7]
1和7不能在a中,因为b中没有0或6。
3不能在b中,因为a中没有4。
我在概念化如何处理这个问题时遇到了问题。
我目前的尝试是:
c = []
d = []
for i in a:
for j in b:
if (i+1) == j or (i-1) ==j:
c.append(i)
d.append(j)
我的想法是然后我会得到一个= c和b = d,但我得到的结果是
c= [1,2,2,3,3,5,8]
d= [2,1,3,2,4,4,7]
我完全理解为什么我会在c和d中得到这些数字,但我担心如何获得正确数字的逻辑完全逃脱了我。这是我必须做的更大项目的一小部分,但我特别关注这一部分。任何帮助将不胜感激。
答案 0 :(得分:1)
一个简单而且效率低下的答案(用列表理解编辑):
c = [el for el in a if (el-1) in b]
d = [el for el in b if (el+1) in a]