问答详情
源自:8-5 Python 操作set的其他方法

下面代码为什么会出问题

# Enter a code
s1 = set([1, 2, 3, 4, 5])
s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
if s1.isdisjoint(s2)<>True:
    for num2 in s2:
        for num1 in s1:
            if num1<>num2:
                s1.remove(num1)
                s2.remove(num2)
            else:
                print(num1)
else:
    print('两集合无重合')

提问者:慕运维3135536 2020-10-04 20:39

个回答

  • 慕无忌1397218
    2021-04-24 22:50:03

    在s1、s2迭代的时候,你不能从中删除元素

  • 慕慕5152215
    2021-01-30 23:21:14

    s1 = set([1, 2, 3, 4, 5])

    s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])

    print(s1&s2)

    集 & : x&y,返回一个新的集合,包括同时在集合 x 和y中的共同元素。

    并集 | : x|y,返回一个新的集合,包括集合 x 和 y 中所有元素。

    差集 - : x-y,返回一个新的集合,包括在集合 x 中但不在集合 y 中的元素。

    补集 ^ : x^y,返回一个新的集合,包括集合 x 和 y 的非共同元素。

    这个教程 感觉整些没用的啊

  • 慕标4283659
    2020-10-28 13:57:50

    s1 = set([1, 2, 3, 4, 5])
    s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
    print(s1.intersection(s2))

    三行代码搞定

  • 慕标4283659
    2020-10-28 13:57:04


    s1 = set([1, 2, 3, 4, 5])

    s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])

    print(s1.intersection(s2))


    三行代码搞定

  • 张铎宝
    2020-10-14 16:55:10

    if条件怕判断部分有问题“<>”

  • 宝慕林2237008
    2020-10-08 13:02:29

    s1 = set([1, 2, 3, 4, 5])
    s2 = set([1, 2, 3, 4, 5, 6, 7, 8, 9])
    if not s1.isdisjoint(s2):
        for num2 in s2:
            for num1 in s1:
                if num1 != num2:
                    s1.remove(num1)
                    s2.remove(num2)
                else:
                    print(num1)
    else:
        print('两集合无重合')

    没有<> 用 != 或者not