相关疑难解决方法(0)

比较两个列表,只打印差异?(XORing两个列表)

我正在尝试创建一个函数,该函数接收2个列表并返回仅具有两个列表的差异的列表.

例:

a = [1,2,5,7,9]
b = [1,2,4,8,9]
Run Code Online (Sandbox Code Playgroud)

结果应该打印出来 [4,5,7,8]

到目前为止的功能:

def xor(list1, list2):
    list3=list1+list2
    for i in range(0, len(list3)):
        x=list3[i]
        y=i
        while y>0 and x<list3[y-1]:
            list3[y]=list3[y-1]
            y=y-1
        list3[y]=x

        last=list3[-1]
    for i in range(len(list3) -2, -1, -1):
        if last==list3[i]:
            del list3[i]
        else:
            last=list3[i]

    return list3 
print xor([1,2,5,7,8],[1,2,4,8,9])
Run Code Online (Sandbox Code Playgroud)

第一个for循环对它进行排序,第二个删除重复项.问题是结果 [1,2,4,5,7,8,9]不是[4,5,7,8],所以它没有完全删除重复项?我可以添加什么来做到这一点.我不能使用任何特殊模块,.sort,set或任何东西,基本上只是循环.

python python-2.7

10
推荐指数
3
解决办法
3万
查看次数

如何使用'set'保持有序列表?

我希望能够在比较时保持列表的顺序.注意当我将list1与list2进行比较时,它返回8然后是7(反向).我如何维护订单?

>>> list1 = ['1','2','3','4','7','8'] 
>>> list2 = ['1','2','3','4','5','6']
>>> list(set(list2) - set(list1))    
['5', '6']
>>> list(set(list1) - set(list2))    
['8', '7']
Run Code Online (Sandbox Code Playgroud)

python list set

4
推荐指数
1
解决办法
130
查看次数

标签 统计

python ×2

list ×1

python-2.7 ×1

set ×1