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

来源:8-4 Python删除set元素

真厉害

2021-07-19 23:55

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

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

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

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])


写回答 关注

4回答

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

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

    真厉害

    啊对哦!谢谢你!

    2021-07-23 22:35:20

    共 1 条回复 >

  • 阿韵仔
    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)

    寂寞高手

    为何要在定义一个s=list(S)?

    2023-01-14 23:20:45

    共 1 条回复 >

  • 慕哥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

Python3 入门教程(新版)

python3入门教程,让你快速入门并能编写简单的Python程序

154167 学习 · 1075 问题

查看课程

相似问题