下面代码为什么会出问题

来源:8-5 Python 操作set的其他方法

慕运维3135536

2020-10-04 20:39

# 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('两集合无重合')

写回答 关注

6回答

  • 慕无忌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 的非共同元素。

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

    幕布斯617... 回复幕布斯617...

    不过你写的这些有用,我学到了

    2021-04-20 11:26:08

    共 2 条回复 >

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

Python3 入门教程(新版)

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

154173 学习 · 1075 问题

查看课程

相似问题