Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在课堂上使用集合;从集合中添加和删除元素_Python_Python 3.x - Fatal编程技术网

Python 在课堂上使用集合;从集合中添加和删除元素

Python 在课堂上使用集合;从集合中添加和删除元素,python,python-3.x,Python,Python 3.x,好的,给了我两个驱动程序文件,我必须创建一个类,这样驱动程序文件就可以工作了。。以下是说明: 您的set类必须命名为set。set类的每个对象都应该包含类的所有元素(实例数据)的列表。此列表应命名为members(在类中,您必须使用名为self.members的python列表-不要使用pythonSet类,创建自己的类)。对于此分配,您必须包括以下方法: \uuuu init\uuuu()构造函数将是不接受任何参数的默认构造函数。它将使用空列表初始化列表(实例数据) 添加元素(整数)此方法将

好的,给了我两个驱动程序文件,我必须创建一个类,这样驱动程序文件就可以工作了。。以下是说明:

您的set类必须命名为
set
。set类的每个对象都应该包含类的所有元素(实例数据)的列表。此列表应命名为
members
(在类中,您必须使用名为
self.members的python列表-不要使用python
Set
类,创建自己的类)。对于此分配,您必须包括以下方法:

  • \uuuu init\uuuu()
    构造函数将是不接受任何参数的默认构造函数。它将使用空列表初始化列表(实例数据)
  • 添加元素(整数)
    此方法将向集合中添加一个整数。您可以假定只向它传递一个整数。无需验证此赋值的参数是否为整数
  • remove\u元素(整数)
    此方法将从集合中删除传递给它的值
  • remove\u all()
    此方法从列表中删除所有值,使其为空
  • has_element(x)
    如果它是调用对象的成员,则此方法接受一个整数并返回
    True
    。否则它将返回
    False
  • \uuuu repr\uuuu()
    此方法允许通过返回字符串,使用python的
    print()
    函数打印
    Set
    。当有n个元素时,应使用规则的集合表示法打印集合:{element1,element2,…element}<如果集合为空,则应打印代码>{}
  • \uuu str\uuu()
    此方法允许将集合与python的
    str()
    函数一起使用。它返回的字符串与
    \uuu repr\uuu()方法返回的字符串相同
  • \uuuu add\uuuu
    此方法重载
    +
    运算符,以提供Set类的联合功能。此方法返回一个新的
    ,其中包含两个添加集的所有成员
  • intersect(x)
    此方法返回一个
    Set
    对象,该对象包含调用
    Set
    Set
    x
    中存在的元素(正在传递的元素)
  • has_subset(x)
    此方法与上周的
    is_element()
    类似,但不同。参数应该是另一个
    Set
    ,而不是传递一个整数。如果传递的
    集合
    是调用的
    集合
    的子集,则返回
    True
    。否则它将返回
    False
  • 第1部分:

    使用默认构造函数(不会传递任何参数)、
    addElement
    removelement
    removeAll
    函数编写类

    我真搞不懂该怎么设置这个!如果我能在第一部分得到帮助,我想我可以完成其他三部分。这是我到目前为止所拥有的。。。但我知道它完全搞砸了!“设置”的事情真的把我搞砸了。我不知道如何为此添加或删除任何内容

    class Set:
         def __init__(self):
              self.members = []
              set = {}        
         def add_element(self):
                return self.add()        
         def remove_element(self):
              return self.remove()        
         def get_remove_all(self):
              self.remove_all()
    

    我不想给你一个问题的完整解决方案,因为这是一个我认为应该由你自己解决的任务

    作业要求您创建类,而不是函数。因此,以下是您可以开始的方式:

    class Set(object):
    
        def __init__(self):
            self.members = []
    
        def add_element(self, some_integer):
            if not some_integer in self.members:
                self.members.append(some_integer)
    
        def get_remove_all(self):
            self.members = []
    ...
    

    我故意实施了错误的解决方案,但你应该把它提供给你的老师,作为完成这项荒谬作业的更好方法。我的意思是,拜托,你的老师甚至不能对方法的命名保持一致

    class Set(object):
    
        def __init__(self):
            self.members = {}
    
        def addElement(self, member):
            self.members[member] = None
    
        def removeElement(self, member):
            if member in self.members:
                del self.members[member]
            else:
                raise ValueError('Item not in the set.')
    
        def removeAll(self):
            self.members = {}
    

    本作业的目的是将列表操作应用于问题。这不要紧,设定类是有点傻。。。这是关于练习列表。使用列表可以执行的一些操作有:mylist中的
    x
    del mylist[x]
    mylist.append(x)
    [x代表mylist中的x,如果其他列表中有x]
    。因此,只需开始将它们应用于Set类:

    class Set(object):   # python 2.x, in 3.x you can just say class Set:
    
        def __init__(self):
            self.member = []
    
        def add_element(self, integer):
            if integer not in self.member:
                self.member.append(integer)
    
        ...
    

    OP创建了一个类,但这不起作用。。。只有当整数不在列表中时,才应附加该整数。@tdelaney是的,对。这更多地是关于类方法框架作为起点。但是我可以为
    add_element
    @PadraicCunningham添加一个工作解决方案是的,他/她有:在我添加我的答案后,OP被相应地编辑。在我写这篇文章的时候,它是一个没有类的函数集合…@PadraicCunningham我明白了,也许它的格式不正确,我只是忽略了它。我的错。我很困惑,为什么你要用Python列表而不是dict来存储成员。@AliAfshar-这是一个特别需要列表的作业。@tdelaney这是一个非常糟糕的列表作业,因为它教给你一些非常糟糕的东西,却没有教给你一些关于数据结构的非常重要的东西。你应该告诉你的老师,如果你的老师想聊的话,请转告我的详细情况。@AliAfshar-我不同意。所有这些列表操作都很有用,并且普遍适用。OP学习了一些关于类的知识,并对集合有了一些了解。随着时间的推移,老师可能会谈论另一个话题:什么样的数据结构最适合使用。但这并不能真正帮助你学习如何操作列表。重点是:这是一个关于何时使用列表的非常糟糕的例子。当然,我不会帮你做家庭作业。我希望这说明了一种更好的做事方式。