首页 > 其他分享 >set 数据结构

set 数据结构

时间:2023-02-20 15:23:30浏览次数:47  
标签:set duplicates list some 集合 数据结构 red

set(集合)数据结构

set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于set不能包含重复的值。
这在很多情况下非常有用。例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用for循环,就像这样:

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']

duplicates = []
for value in some_list:
    if some_list.count(value) > 1:
        if value not in duplicates:
            duplicates.append(value)

print(duplicates)
### 输出: ['b', 'n']

但还有一种更简单更优雅的解决方案,那就是使用集合(sets),你直接这样做:

some_list = ['a', 'b', 'c', 'b', 'd', 'm', 'n', 'n']
duplicates = set([x for x in some_list if some_list.count(x) > 1])
print(duplicates)
### 输出: set(['b', 'n'])

集合还有一些其它方法,下面我们介绍其中一部分。

交集

你可以对比两个集合的交集(intersection)(两个集合中都有的数据),如下:

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.intersection(valid))
### 输出: set(['red'])

差集

你可以用差集(difference)找出无效的数据,相当于用一个集合减去另一个集合的数据,例如:

valid = set(['yellow', 'red', 'blue', 'green', 'black'])
input_set = set(['red', 'brown'])
print(input_set.difference(valid))
### 输出: set(['brown'])

你也可以用符号来创建集合,如:

a_set = {'red', 'blue', 'green'}
print(type(a_set))
### 输出: <type 'set'>

集合还有一些其它方法,我会建议访问官方文档并做个快速阅读。

 

标签:set,duplicates,list,some,集合,数据结构,red
From: https://www.cnblogs.com/zuochuang/p/17137564.html

相关文章

  • TZOJ数据结构实验:二叉树的层次构造、前中后序遍历、高度depth、叶子节点数leafs、交换
    5420数据结构实验--二叉树中序遍历(二叉链表存储)voidinorder(Bitnode*t)//中序{if(t->left)inorder(t->left);cout<<""<<t->val;if(t->right)inorde......
  • TreeSet的使用以及Comparator接口
    packageedu.wtbu;importjava.util.Comparator;importjava.util.Iterator;importjava.util.TreeSet;publicclassDemo01{publicstaticvoidmain(String[]args......
  • 修复错误代码:PR_CONNECT_RESET_ERROR
    今天突然浏览器访问不了一些网站,报错提示:错误代码:PR_CONNECT_RESET_ERROR,就是https证书验证问题,第一直觉是dns的原因,根据微软官方教程修复您可以考虑重置一下网络,这其中包......
  • java面试_集合框架001_List、Set、Map三者的区别_说出ArrayList、LinkList、Vector的
    系列文章目录文章目录​​系列文章目录​​​​List、Set、Map三者的区别​​​​说出ArrayList、LinkList、Vector的区别​​​​用源码来佐证​​​​总结​​List、Set、......
  • HashSet的使用以及存储方式
    packageedu.wtbu;importjava.util.HashSet;importjava.util.Iterator;publicclassDemo01{publicstaticvoidmain(String[]args){//HashSet:存储结......
  • 数据结构刷题2023.02.20小记
    排序算法最坏时间复杂度A:归并排序,是稳定排序,需要一个栈来维护,利用分治法思想每次分成两边分别排序再合并,具有稳定性,无论何时,其时间复杂度均为O(NlogN).B:快速排序,最坏情......
  • Set接口的使用
    importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;publicclassDemo01{publicstaticvoidmain(String[]args){//Set接口:无......
  • 集合 Set方法
     set方法可以去重数组//声明一个setlete=newSet()letess=newSet(['张三','李四','王五','李四'])console.log(ess);......
  • Pycharm cannot set up a python SDK
    一、问题背景进入Pycharm后,打开之前的项目,打开Pycharm→file→settings→projectinterpreter,按照下图1选择配置之后,点击【OK】会出现报错,如图2我的环境上有很多之前的包......
  • 12. 数据结构
    数组和链表的区别?从逻辑结构来看:数组的存储长度是固定的,它不能适应数据动态增减的情况。链表能够动态分配存储空间以适应数据动态增减的情况,并且易于进行插入和删除操作。......