精华内容
下载资源
问答
  • set类删除元素
    千次阅读
    2020-06-20 23:58:45

     本文代码上下文

    temp = {1,3,5,6,9,100,111,323}

     

    第一种:remove()方法

    说明:remove方法删除元素时,如果元素不存在,会引发KeyError的错误

     temp.remove(1)

     

    第二种方式:discard()方法

    说明:discard方法删除元素时,元素不存在,不会引发任何错误

     temp.discard(999)

     

    第三种方式:pop()方法

    说明:从set中随机删除并返回一个元素,set为空会引发KeyError

    temp.pop()

     

    第四种方式:clear()方法

    说明:移除set中的所有元素

    temp.clear()

     

    更多相关内容
  • Python集合(set)删除元素

    千次阅读 2021-09-23 16:30:26
    Python集合(set)删除元素教程 Python 的 集合 删除元素有三种方式,分别为:使用 remove 方法、使用 discard 方法和使用 pop 方法。 Python集合(set)删除元素对比 函数 描述 remove 使用 remove 方法删除元素...

    Python集合(set)删除元素教程

    Python集合 删除元素有三种方式,分别为:使用 remove 方法、使用 discard 方法和使用 pop 方法。

    Python集合(set)删除元素对比

    函数描述
    remove使用 remove 方法删除元素时,如果元素不存在集合中,那么程序会报错。
    discard使用 discard 方法删除元素时,如果元素不存在集合中,那么程序不会报错。
    pop使用 pop 方法删除集合中的元素时,会自动删除集合中的第一个元素,并返回被删除的元素,如果集合为空,程序报错。

    remove方法删除元素详解

    语法

      
    s.remove(element)

    参数

    参数描述
    s集合名。
    element需要删除的元素。

    说明

    从集合 s 中,删除元素 element,如果元素 element 不存在,程序报错。

    discard方法删除元素详解

    语法

      
    s.discard(element)

    参数

    参数描述
    s集合名。
    element需要删除的元素。

    说明

    从集合 s 中,删除元素 element,如果元素 element 不存在,程序不报错。

    pop方法删除元素详解

    语法

      
    s.pop()

    参数

    参数描述
    s集合名。

    返回值

    返回被弹出的元素。

    说明

    从集合 s 中,删除第一个元素,并返回被删除的元素。

    案例

    使用 remove 方法删除元素

    使用 remove 方法,从集合中删除元素

      
    print("嗨客网(www.haicoder.net)") # 使用 remove 方法,从集合中删除元素 s = {"Hello", "HaiCoder", 1024} s.remove("Hello") print("Set =", s)

    程序运行后,控制台输出如下:

    134 python集合set删除元素.png

    我们使用 {} 定义了一个集合 s,集合的第一个和第二个元素都是 string 类型,第三个元素是 int 类型的。

    接着,我们使用 remove 方法,删除集合中的 “Hello” 元素, 最后,我们使用 print 打印集合的内容,发现元素 “Hello” 已经被删除。

    使用 remove 方法删除元素

    使用 remove 方法,从集合中删除不存在的元素,报错

      
    print("嗨客网(www.haicoder.net)") # 使用 remove 方法,从集合中删除不存在的元素,报错 s = {"Hello", "HaiCoder", 1024} s.remove("haicoder") print("Set =", s)

    程序运行后,控制台输出如下:

    135 python集合set删除元素.png

    我们使用 {} 定义了一个集合 s,接着,我们使用 remove 方法,删除集合中的 “haicoder” 元素, 因为元素 “haicoder” 不存在集合中,因此程序报错。

    使用 discard 方法删除元素

    使用 discard 方法,从集合中删除元素

      
    print("嗨客网(www.haicoder.net)") # 使用 discard 方法,从集合中删除元素 s = {"Hello", "HaiCoder", 1024} s.discard("Hello") print("Set =", s)

    程序运行后,控制台输出如下:

    136 python集合set删除元素.png

    我们使用 {} 定义了一个集合 s,接着,我们使用 discard 方法,删除集合中的 “Hello” 元素, 最后,我们使用 print 打印集合的内容,发现元素 “Hello” 已经被删除。

    使用 discard 方法删除元素

    使用 discard 方法,从集合中删除元素

      
    print("嗨客网(www.haicoder.net)") # 使用 discard 方法,从集合中删除元素 s = {"Hello", "HaiCoder", 1024} s.discard("haicoder") print("Set =", s)

    程序运行后,控制台输出如下:

    137 python集合set删除元素.png

    我们使用 {} 定义了一个集合 s,接着,我们使用 discard 方法,删除集合中的 “haicoder” 元素, 元素 “haicoder” 不存在集合中,但程序不会报错。

    使用 pop 方法删除元素

    使用 pop 方法,从集合中删除元素

      
    print("嗨客网(www.haicoder.net)") # 使用 pop 方法,从集合中删除元素 s = {"Hello", "HaiCoder", 1024} print("Before =", s) item = s.pop() print("Item =", item) print("Set =", s)

    程序运行后,控制台输出如下:

    138 python集合set删除元素.png

    我们使用 {} 定义了一个集合 s,接着,我们使用 pop 方法,删除集合中的第一个元素, 并打印被删除的元素。

    使用 pop 方法删除元素

    使用 pop 方法,从集合中删除元素

      
    print("嗨客网(www.haicoder.net)") # 使用 pop 方法,从集合中删除元素 s = {} item = s.pop() print("Item =", item) print("Set =", s)

    程序运行后,控制台输出如下:

    139 python集合set删除元素.png

    我们使用 {} 定义了一个空集合 s,接着,我们使用 pop 方法,删除空集合中的第一个元素, 程序报错。

    Python集合(set)删除元素总结

    使用 remove 方法删除元素时,如果元素不存在集合中,那么程序会报错。使用 discard 方法删除元素时,如果元素不存在集合中,那么程序不会报错。

    使用 pop 方法删除集合中的元素时,会自动删除集合中的第一个元素,并返回被删除的元素,如果集合为空,程序报错。

    展开全文
  • 遍历List、Set删除元素的正确方法

    千次阅读 2019-06-23 22:36:20
    作为一个java初学者,想在某一List、Set删除具有某一特性的元素时,很自然的想法就是,for each 循环遍历,然后判断特性是否符合,如果符合就直接remove该元素。想起来似乎是没毛病,但是,真的没问题吗?下面看一...

    作为一个java初学者,想在某一List、Set里删除具有某一特性的元素时,很自然的想法就是,for each 循环遍历,然后判断特性是否符合,如果符合就直接remove该元素。想起来似乎是没毛病,但是,真的没问题吗?下面看一个简单的例子:
    在这里插入图片描述
    如果正常情况下,应该会删除掉“abcd”。
    跑一下看一下,发现报错:
    在这里插入图片描述
    原因是for each的底层其实也是用迭代器实现的,在使用iterator.hasNext()操作迭代器的时候,如果此时迭代的对象发生改变,比如插入了新数据,或者有数据被删除,就会抛出 java.util.ConcurrentModificationException异常。

    那么在遍历的同时删除或插入元素的正确姿势是什么样的呢?
    对代码做以下修改:
    在这里插入图片描述
    输出结果为:
    在这里插入图片描述可以看到,使用迭代器自身的remove方法,就不会抛出异常。

    这是为什么呢?
    Iterator被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,当索引指针往后移动的时候就找不到要迭代的对象,所以会抛出ConcurrentModificationException异常。
    erator 在工作的时候是不允许被迭代的对象被改变的。但你可以使用 Iterator 本身的方法 remove() 来删除对象,因为Iterator.remove() 方法会在删除当前迭代对象的同时维护索引的一致性。

    举个例子进行分析:
    在这里插入图片描述
    但是结果:
    在这里插入图片描述
    画diagram进行分析:
    在这里插入图片描述

    在这里插入图片描述
    可见索引的一致性被迫坏。

    展开全文
  • C++容器之 vector map set 删除元素

    千次阅读 2018-09-04 22:01:42
    前面一章节主要是针对容器的增加,可以明显看到关联容器...3、set元素删除 小结 代码 1、vector的元素删除 vector的删除主要有三种方法:erase、pop_back和 remove(algortihm)。 iterator erase(i...

    前面一章节主要是针对容器的增加,可以明显看到关联容器和顺序容器的特点,下面主要介绍两类容器的删除和查找的区别

    目录


    1、vector的元素删除

    vector的删除主要有三种方法:erase、pop_back和 remove(algortihm)

    • iterator erase(iterator first,iterator second) 删除区间[first,last)之间的元素

      • iterator erase(iterator position) 删除当前位置的元素,但注意删除后、position 会自动++, 返回的iterator指向新的容器中(最后一个删除元素)的下一个位置。
    • void clear() 清空所有元素

    • void pop_back() 删除最后一个元素

    • iterator remove(iterator first,iterator second,value)

    返回最后一个元素的iterator,容器后面的依然保留了。

    经常使用方法:

    iv.erase(remove(iv.begin(), ib.end(), remove_value), iv.end());

    算法描述:查找的得到第一个元素的位置,然后从此位置开始遍历容器,将后面的元素依次前移,跳过和value相同值的元素.
    也就是说,所有和value相同值的元素都会被覆盖,而其他的元素都会依次前移。
    最后,remove返回”指向最后一个 ‘有用’ 元素的iterator”,
    但是在remove算法过程中,并没有修改原容器的size,以及end()。

    2、map的元素删除

    map的删除

    map::erase()

    下面两种方法和vector的相同

    • iterator erase(iterator first,iterator second) 删除区间[first,last)之间的元素

    • iterator erase(iterator position)
      删除当前位置的元素,但注意删除后、position不会自动++,被删除元素的迭代器,在删除之后失效!这里是和vector的区别!

    3、set的元素删除

    • (1) 移除set容器内元素值为value的所有元素,返回移除元素的个数

    size_type erase(value)

    • (2) 移除pos位置上的元素,无返回值

    void erase(iterator pos)

    删除后pos不会自动++!这里是和vector的区别
    不会自动++,被删除元素的迭代器,在删除之后失效!这里是和vector的区别!

    • (3) 移除迭代区间[first,last)内的所有元素,无返回值

    void erase(iterator first, iterator last)

    (4) 移除set容器内所有的元素

    void clear()

    小结

    从上面来看,其实两类容器在删除的功能来说是很相似的,都主要删除指定的iterator和区间内的iterator。唯一不一样的是,因为两者在内存中的形式不一样,如果调用remove()方法以后,vector对应的iterator所指向的删除后的下一个位置。而后者这是指着失效的iterator.

    代码

    #include <iostream>
    #include <algorithm>
    using namespace std;
    #include <map>
    typedef pair<int,string> stuType;
    void print(map<int,string> stu)
    {
        auto ib = stu.begin();
        while(ib != stu.end())
        {
            cout << ib->first << " " << ib->second << endl;
            ib++;
        }
    }
    int main(int argc, char *argv[])
    {
       map<int,string> mapstu;
        //1.方法1:pair
        pair<map<int,string>::iterator,bool> insert_pair = mapstu.insert(pair<int,string>(1,"LiLei"));
       //若插入成功insert_pair.second为true
        if(insert_pair.second) 
            cout <<" insert success!" << endl;
        mapstu.insert(stuType(2,"HanMeiMei"));
    
        //2.方法2:value_type
        mapstu.insert(map<int,string>::value_type(3,"xiaoming"));
    
        //3.方法3:数组形式
        mapstu[6] = "ZhaoYun";
        print(mapstu);
    
        //删除
        cout << "---before erase---\n";
        map<int,string>::iterator ib= mapstu.begin();
        for(;ib!= mapstu.end();ib++)
            cout << ib->first << " " << ib->second << endl;
        cout << "--------------\n";
        ib = mapstu.begin();
        mapstu.erase(ib);
        print(mapstu);
        return 0;
    }
    >>> insert success!
    1 LiLei
    2 HanMeiMei
    3 xiaoming
    6 ZhaoYun
    ---before erase-
    1 LiLei
    2 HanMeiMei
    3 xiaoming
    6 ZhaoYun
    --------------
    2 HanMeiMei
    3 xiaoming
    6 ZhaoYun

    有个奇怪的现象
    如果,在输出的时候,以数组的形式访问的话,那么对于不存在key的结点,那么会自动增加该结点到map中,value的值为空字符。

    展开全文
  • STL-set (集合)之删除元素

    万次阅读 2016-11-10 21:25:52
    set概述 和vector、list不同,set、map都是关联式容器。set内部是基于红黑树实现的。插入和删除操作效率较高,因为只...指向其他元素的迭代器还是指向原位置,并没有改变,所以删除一个节点后其他迭代器不会失效。lis
  • set删除某位置元素

    千次阅读 2016-11-01 11:25:22
    set删除确定值的元素可以用erase,那么如果要删除第i个元素怎么办呢? 迭代器实现,代码如下: set<int>s; for(int i=1;i;i++) s.insert(i); //把i~5的元素插入 set<int>::iterator it; it=s.begin(); //...
  • Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set...因为set类和list基本一致,这里就不多说了,本文主要讲解的是set类中集合的删除。 查阅api。我们发现集合中用迭代的方式遍历一个集合。然后我
  • 关于使用set的iterator删除set中的元素

    千次阅读 2018-04-05 23:10:58
    /*目的,删除后九个元素,之后输出剩下的元素。*/  /* 总结 set的iterator要用++或者--移动。 */   #include&lt;bits/stdc++.h&gt; using namespace std; int main() { set&lt;int&gt; s; ...
  • Set集合按条件删除元素

    千次阅读 2018-01-12 10:58:00
    不能在for循环中删除,这样会引起Set的size();变化,进而程序报错.  2.不能在foreach中使用set.remove(Object obj);方法  正确的是使用迭代器,利用其迭代器对象的remove()方法,但必须保证在使用remove()之前调用...
  • python删除set中的某个元素

    千次阅读 2019-09-14 09:50:06
    ###删除set中的某个元素删除空格 while '' in setA: setA.remove('') ###删除list中的某个元素 list删除某个元素的可以有以下方法 del listA[index] listA.pop() #删除最后一个 listA.remove(ob...
  • 匿名用户1级2019-02-28 回答python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称...
  • Set接口实现HashSet、TreeSet、LinkedHashSet; Map接口实现LinkedHashMap、TreeMap、HashMap的存、取速度进行比较。LinkedList与ArrayList:LinkedList采用链表结构,在数据量较大时,插入元素只需改变插入点的...
  • ArraySet 添加和删除元素分析

    千次阅读 2018-10-15 10:44:15
    一直在使用Set相关进行运行时数据存储,之前也有知道Android为了更加有效的利用内存,在23的时候设计了自己的一套运行时的集合。本文的以我的视角分析ArraySet的add和remove过程,并做了简单的对比分析。 ##结构...
  • STL/C++__中 set(集合) 删除元素

    万次阅读 2015-10-10 15:01:40
    using std::set; int main(int argc,char *argv[]) { set s; set::iterator it; s.insert(1); s.insert(2); s.insert(3); for(it=s.begin();it!=s.end();){ if((*it)%2==0) s.erase(it++);
  • 从Java中的HashSet中删除单个元素

    千次阅读 2021-03-13 20:39:32
    要从HashSet中删除单个元素,请使用remove()方法。首先,创建一个HashSet-HashSeths=newHashSet();现在,将元素添加到HashSet-hs.add("R");hs.add("S");hs.add("T");hs.add("V");hs.add("W");hs.add("Y");hs.add("Z...
  • 取集合中元素_Python Set集合

    千次阅读 2021-03-06 22:33:24
    基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。# 集合的定义set1 = set() #定义一个空的...
  • (1)向集合中添加元素,如果集合中已存在元素则不添加(2)从集合中移除元素,移除之前需要先判断集合中元素是否存在(3)重载+运算符,用以实现集合的求并集运算(4)重载*运算符,用以实现集合的求交集运算1.的...
  • Java集合中的 Set.remove() 方法用于移除 Set 集合中的指定对象。该方法返回值为 boolean 类型,如果 Set 集合包含参数 o 指定的对象,则返回 true,否则返回 false。语法:remove(Object o)参数说明:o:是要移除...
  • redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。 假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。 当集合 key 不是集合类型时,返回一个错误。 使用起来也...
  • c++ set 中如何循环删除元素

    千次阅读 2013-04-15 20:43:00
    直接上代码 std::set<int>::iterator it = setINT.begin();for (; it != setINT.end();){if (*it < 4 ||*it >... //保存要删除的指针std::set<int>::iterator itmp = it;it++;setINT.er...
  • 特别注意:JavaScript语法中(对象或数组), 如果obj中的name属性不存在,那么增加一个元素是,obj....删除一个元素:delete obj.name (vue2.0对象或数组无效,使用Vue.delete() 静态方法 或 vm.$delete实例方...
  • Redis中如何设置set中的元素过期

    千次阅读 2021-04-15 19:21:17
    最近在工作中碰到了这个问题,我需要在一个set中记录集群...先用ZRemRangeByScore删除过期元素(分数之外的元素),然后每个pod带上过期时间戳去定时去EasyZAdd,下面是伪代码 for{ nowTime := time.Now().Unix() re
  • Map中根据条件删除元素

    千次阅读 2021-03-15 03:00:13
    今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下:public Map processMap(Map list) {Map map = list;Iterator iter = ...
  • Java Set remove()用法及代码示例

    千次阅读 2021-02-12 18:51:21
    java.util.Set.remove(Object O)方法用于从Set删除特定元素。用法:boolean remove(Object O)参数:参数O是此Set维护的元素类型,并指定要从Set删除元素。返回值:如果Set中存在指定的元素,则此方法返回True,...
  • Java 清空Set集合里面所有元素

    千次阅读 2020-09-27 17:39:31
    项目开发中,再清空Set集合里面所有元素时,我使用set.clear()方法,失败
  • redis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。 假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。 当集合 key 不是集合类型时,返回一个错误。 使用起来...
  • python之Set操作(下)

    千次阅读 2021-03-17 02:53:06
    Set删除1) 删除一个指定元素2) 随机删除一个元素3) 清空Set4) 删除整个Set6. Set判断1) 判断两个Set是否相等2) 判断两个Set有没有交集3) 判断一个Set是否包含另一个Set4) 判断一个Set是否是另一个Set的子集5) 判断...
  • set插入和删除

    千次阅读 2019-07-04 17:04:23
    set容器进行插入数据和删除数据 函数原型: insert(elem); //在容器中插入元素。 clear(); //清除所有元素 erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器。 erase(beg, end); //删除区间[beg,...
  • Java删除List和Set集合中元素

    千次阅读 2016-12-28 15:01:46
    今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录如下: 错误代码的写法,也就是报...
  • redis-set常用命令

    千次阅读 2017-10-08 23:21:05
    redis set

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 545,340
精华内容 218,136
关键字:

set类删除元素