python中set是什么意思

python中set是什么意思,第1张

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。

创建集合set、集合set添加、集合删除、交集、并集、差集的 *** 作都是非常实用的方法。set是一个无序的元素集合,支持并、交、差及对称差等数学运算,但由于set不记录元素位置,因此不支持索引、分片等类序列的 *** 作。

tuple算是list和str的杂合(杂交的都有自己的优势,上一节的末后已经显示了),那么set则可以堪称是list和dict的杂合。

set拥有类似dict的特点:可以用{}花括号来定义;其中的元素没有序列,也就是是非序列类型的数据;而且,set中的元素不可重复,这就类似dict的键,set也有一点list的特点:有一种集合可以原处修改。

以上内容参考  百度百科-Python

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。

创建集合set、集合set添加、集合删除、交集、并集、差集的 *** 作都是非常实用的方法。set是一个无序的元素集合,支持并、交、差及对称差等数学运算,但由于set不记录元素位置,因此不支持索引、分片等类序列的 *** 作。

python 中list,tuple,dict,set是最常用的集合类型。

list列表,相当于一个数组,不过list的长度是自动变化的而且列表元素自由的,不必每个元素都是同一种类型。它的简洁的定义方式是a=[]。有序组合

tuple也是一个组合。不过tuple在定义好之后就不能再变化。它的简洁的定义方式是a=1,3也可以是a=(1,3).有序组合。

dict是字典类型。也就是键值对类型。键名不可以重复,并且不可以变化(字符串就符合这个要求,常用字符串作为键名)。它的简洁的定义方式是a={}.无序组合(意思就是你无法按照添加的顺序对他进行遍历)。

set是set类型(不好翻译,用的也少)。也是一个无序的组合,元素是互斥的,也就不会出现相同的元素。可以把一个序列转换成无重复元素的set.无序组合。

set的基本 *** 作:

begin() 返回指向第一个元素的迭代器

clear() 清除所有元素

count() 返回某个值元素的个数

empty() 如果集合为空,返回true

end() 返回指向最后一个元素的迭代器

equal_range() 返回集合中与给定值相等的上下限的两个迭代器

erase() 删除集合中的元素

find() 返回一个指向被查找到元素的迭代器

get_allocator() 返回集合的分配器

insert() 在集合中插入元素

lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器

key_comp() 返回一个用于元素间值比较的函数

max_size() 返回集合能容纳的元素的最大限值

rbegin() 返回指向集合中最后一个元素的反向迭代器

rend() 返回指向集合中第一个元素的反向迭代器

size() 集合中元素的数目

swap() 交换两个集合变量

upper_bound() 返回大于某个值元素的迭代器

value_comp() 返回一个用于比较元素间的值的函数

5,自定义比较函数:

For example:

#include<iostream>

#include<set>

using namespace std

typedef struct {

int a,b

char s

}newtype

struct compare //there is no ().

{

bool operator()(const newtype &a, const newtype &b) const

{

return a.s<b.s

}

}//the “ ” is here

set<newtype,compare>element

int main()

{

newtype a,b,c,d,t

a.a=1 a.s='b'

b.a=2 b.s='c'

c.a=4 c.s='d'

d.a=3 d.s='a'

element.insert(a)

element.insert(b)

element.insert(c)

element.insert(d)

set<newtype,compare>::iterator it

for(it=element.begin() it!=element.end()it++)

cout<<(*it).a<<" "

cout<<endl

for(it=element.begin() it!=element.end()it++)

cout<<(*it).s<<" "

}

element自动排序是按照char s的大小排序的;

6.其他的set构造方法;

#include <iostream>

#include <set>

using namespace std

bool fncomp (int lhs, int rhs) {return lhs<rhs}

struct classcomp {

 bool operator() (const int& lhs, const int& rhs) const

 {return lhs<rhs}

}

int main ()

{

 set<int> first // empty set of ints

 int myints[]= {10,20,30,40,50}

 set<int> second (myints,myints+5) // pointers used as iterators

 set<int> third (second) // a copy of second

 set<int> fourth (second.begin(), second.end()) // iterator ctor.

 set<int,classcomp> fifth // class as Compare

 bool(*fn_pt)(int,int) = fncomp

 set<int,bool(*)(int,int)> sixth (fn_pt) // function pointer as Compare

 return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11604641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存