问答详情
源自:8-4 Python删除set元素

请问这个运行结果是对的吗

请问这个运行结果是对的吗_

请问这个运行结果是对的吗_

请问这个运行结果是对的吗_

L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

S = set([1, 3, 5, 7, 9, 11])

for l in L:

    for s in S.copy():

        if l==s:

            S.remove(l)

        else:

            S.add(l)

print(S)

___________________________________________________


set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])


提问者:真厉害 2021-07-19 23:55

个回答

  • qq_冰红茶小哥
    2021-07-23 16:31:51
    已采纳

    不对,嵌套for循环,走外面的for循环取L值,里面的for循环取S值,值会重复,例如外面取1,里面取3,1==3,就会执行add方法,没有实现你想要的。只要遍历一遍就可以,判断从L中取得值与S中的值一不一样就可以了

  • 阿韵仔
    2021-12-29 16:36:05

    L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    S = set([1, 3, 5, 7, 9, 11])

    print(S)

    for x in L:

        if(x in S):

            S.remove(x)

        else:

            S.add(x)

    print(S)

            

  • 鲸落008
    2021-09-13 10:26:25

    其实还可以这样写

    L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    S = set([1, 3, 5, 7, 9, 11])
    s=list(S)
    for a in L:
        num=0
        for b in s:
            if a==b:
                num+=1
        if num>=1:
            S.remove(a)
        else:
            S.add(a)
    print(S)

  • 慕哥4531063
    2021-07-29 17:22:29

    l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    s = set([1, 3, 5, 7, 9, 11])
    for ss in l:
        if ss not in s:
            s.add(ss)
    print s