博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合(一)
阅读量:7061 次
发布时间:2019-06-28

本文共 1714 字,大约阅读时间需要 5 分钟。

set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删除集合中的元素、求集合的交集、并集、差集等操作。

创建空集合

s = set()

创建集合

set1 = {1,2,3,4,5,6}

set1
set([1, 2, 3, 4, 5, 6])

创建不可变集合 冰冻集合

不能被修改元素、删除元组,但是可以删除整个集合
可以使用集合的其他操作

a = frozenset("123456789")

a
frozenset(['1', '3', '2', '5', '4', '7', '6', '9', '8'])
a.add(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'add'

列表转换成集合

set([1,1,2,3,4])

set([1, 2, 3, 4])

字符串转换成集合

set("abc")

set(['a', 'c', 'b'])

元组转换成集合

set((2,3,4,5))

set([2, 3, 4, 5])

字典转换成集合,只能转换key

set({1:"a",2:"b",3:"c"})

set([1, 2, 3])
其他类型数据转换成集合后重复元素被去除,只保留一个

添加元素

set.add(value)
add()方法是将要添加的元素作为一个整体添加到集合中。

a.add("d")

a
set(['a', 'c', 'b', 'd'])

a.add("456")

a
set(['a', 'c', 'b', 'd', '456'])
set.update(value)
update()方法把传入的元素拆分成单个字符添加到集合中,去掉重复的;
a.update("789")
a
set(['a', 'c', 'b', 'd', '456', '7', '9', '8'])

删除集合元素

set.remove(value)
删除指定值的元素,如果集合元素不存在会报错

a

set(['a', 1, 2, 3, 4, 5, 'c', '[2,3,4]', 'b'])
a.remove("a")
a
set([1, 2, 3, 4, 5, 'c', '[2,3,4]', 'b'])
a.remove("[2,3,4]")
a
set([1, 2, 3, 4, 5, 'c', 'b'])
set.pop()
pop()返回一个任意元素并删除
a
set([1, 2, 3, 4, 5, 'c', 'b'])
a.pop()
1
a
set([2, 3, 4, 5, 'c', 'b'])
a.pop()
2
a
set([3, 4, 5, 'c', 'b'])
set.discard(value)
在集合中查找元素,如果存在则删除;如果没找到,则什么也不做。该函数没有返回值
set1
set(['1', '3', '2', '5', '4'])
set1.discard("3")
set1
set(['1', '2', '5', '4'])
遍历集合
使用in进行遍历
a
set([1, 2, 3, 4, 5, 'c', 'b'])
for value in a:
... print value
...
1
2
3
4
5
c
B
使用enumerate进行遍历
set_1 = {1,2,3,4,5,"a"}
set_1
set(['a', 1, 2, 3, 4, 5])
for index,value in enumerate(set_1):
... print index,value
...
0 a
1 1
2 2
3 3
4 4
5 5

转载于:https://blog.51cto.com/13496943/2129562

你可能感兴趣的文章
python
查看>>
CentOS中与网络相关的常用
查看>>
html5的Message信息提示框
查看>>
Android清除本地数据缓存代码
查看>>
玩转Vim 编辑器
查看>>
vue中的computed(计算属性)和watch(监听属性)的特点,以及深度监听
查看>>
cef_binary_3.2623.1401.gb90a3be
查看>>
log4j
查看>>
原生JS获取元素的位置与尺寸
查看>>
SOA_环境安装系列1_Oracle SOA Suite11g安装总括(案例)
查看>>
DBMS_JOBS
查看>>
Python基础3:函数
查看>>
devgridContral
查看>>
[转]notepad++正则表达式替换字符串详解
查看>>
最近踩坑汇总
查看>>
骨牌(/棋子?)覆盖问题
查看>>
浅谈差分
查看>>
LEFT JOIN、RIGHT JOIN、INNER JOIN、FULL JOIN 使用
查看>>
谈谈 oc原生和跳转h5 页面 来回切换的功能
查看>>
【二维树状数组】【CF10D】 LCIS
查看>>