python学习笔记——集合
通过set()函数,就可以将列表转化为集合了,转化成的集合有一个很大的好处就是可以删去多余的元素,比如a列表中本来有两个2,但是变成集合后,就只有一个2了。因为集合是无序的,所以会随机输出元素,我再运行一次程序,输出的值可能就不是1-2-w1-a了,可能变成1-2-a-w1了。集合(set)是一类容器,元素没有先后顺序,并且元素的值不重复,集合用的是{}将元素括起来。在创建集合时,python除了
……
目录:
一;概念
二;创建集合
三;与集合相关的函数
四;遍历集合
五;判断元素是否在集合中
六;子集、超集和相等判断
七;集合运算
八;列表去重,保持原有顺序输出
……
一;概念
集合(set)是一类容器,元素没有先后顺序,并且元素的值不重复,集合用的是{}将元素括起来。
……
……
二;创建集合
1;创建一个空集合,a=set()
2;直接进行赋值初始化,a={'a',1,2,1,'a','w1'}
3;也可以将其它类型容器转化为集合。
比如:
a=[1,2,3,4,2]
b=set(a)
print(b)
会输出:
{1, 2, 3, 4}
通过set()函数,就可以将列表转化为集合了,转化成的集合有一个很大的好处就是可以删去多余的元素,比如a列表中本来有两个2,但是变成集合后,就只有一个2了。如果想要再进行列表的操作怎么办呢?很简单,再转变成列表就行了,比如:
a=[1,2,3,4,2]
b=set(a)
print(b)
c=list(b)
print(c)
会输出:
{1, 2, 3, 4}
[1, 2, 3, 4]
将列表转变成集合,然后又从集合转变成字典,就成功的消去了多余的元素了。
4;在创建集合时,python除了会消去重复的元素外,还会改变元素的顺序(集合是无序的)。
……
……
三;与集合相关的函数
事实上,还是之前的那几个函数……不过缺少了对元素下标和顺序等一些操作的函数,因为集合时是无序的,没有下标。
……
……
四;遍历集合
虽说集合是无序的,但却可以用循环来遍历集合,比如:
a={'a',1,2,1,'a','w1'}
for i in a:
print(i)
会输出:
1
2
w1
a
为什么会输出这样一个顺序呢?因为集合是无序的,所以会随机输出元素,我再运行一次程序,输出的值可能就不是1-2-w1-a了,可能变成1-2-a-w1了。(所以将集合转化为列表进行输出,更加稳定一些,起码顺序不会这样颠三倒四)
……
……
五;判断元素是否在集合中
用in和not in判断就可以了。
比如:
a={'a',1,2,1,'a','w1'}
if(2 in a):
print('yes')
会输出:
yes
……
……
六;子集、超集和相等判断
可以直接进行=、>、<、>=、<=进行判断。
比如:
a={1,2,3}
b={3,2,1}
if(a==b):
print('yes')
会输出:
yes
集合是无序的,所以顺序无论怎么变,只要元素能一一相等,那这两个集合就相等。
而如果a>b,则说明b是a的真子集,a是b的真超集。
a>=b,说明b是a的子集,a是b的超集。
至于<和<=,也都类似。
……
……
七;集合运算
八;列表去重,保持原有顺序输出
将列表转换成集合删去重复的数,然后再恢复成列表,顺序就会发生改变,而怎么样保持原有顺序输出呢?
比如:
a=[1,'w','a','z',23,1,21,'a',11,2,2]
b=list(set(a))
print(b)
b.sort(key=a.index)
print(b)
会输出:
[1, 2, 11, 'w', 21, 23, 'a', 'z']
[1, 'w', 'a', 'z', 23, 21, 11, 2]
第一行是无序输出,而第二行则是根据原有的列表顺序输出。
更多推荐
所有评论(0)