我有一个项目,其中我必须根据参数listA的长度划分2个列表,数字必须按升序排列,其余元素进入列表B
def partitionLists(listA, listB, largerFirst=False):
if largerFirst == False:
sortedA = []
listCombination = listA + listB
listCombination.sort()
for i in range(len(listA)):
if listCombination[i] <= listCombination[i + 1]:
sortedA.append(listCombination[i])
我现在需要的是从排序列表中删除listA中的元素,但不是全部,例如,列表A是[1,1,3,4,4,5,5],而总列表是[1,1,3,3,4,4,4,5,5,5,6,7,7,7,34,45,56,65,432,543,723],所以我想返回一个只有[5,6,7,7,34,45,56,65,432,543,723]的列表,但是如果我尝试传统的删除公共元素的方法,它也会删除第二个列表中的5。对不起,如果因为我的解释,这似乎很难理解,但我希望我已经明白我的意思了
在您提供的示例中,似乎最好在较大的列表中循环,以查看这些元素是否在较小的列表中。如果没有,您可以将它们附加到空列表中。根据你的问题,我不确定哪个列表需要排序,但你可以在之前或之后对列表进行排序。它不应该改变您将元素附加到空列表中的能力
可以使用第一个列表上的迭代器来完成此操作,迭代器将告诉您跳过第二个列表中的哪些元素(假设两个列表都已排序):
输出:
[编辑]如果列表A中可能存在列表B中不存在的数字,则需要调整方法以跳过这些值:
相关问题 更多 >
编程相关推荐