朝气蓬勃的煎鸡蛋 · 另辟文件储存——Minio - 掘金· 1 年前 · |
慈祥的仙人掌 · 纷享销客事件变更订阅接口到底怎么用? - 知乎· 1 年前 · |
光明磊落的围巾 · 通过CefSharp实现浏览器自动输入自动点 ...· 1 年前 · |
失眠的开心果 · 循环遍历列表时获取下一个元素_python_ ...· 1 年前 · |
以下是一个简单实例:
set1 = {1, 2, 3, 4} # 直接使用大括号创建集合 set2 = set([4, 5, 6, 7]) # 使用 set() 函数从列表创建集合
注意: 创建一个空集合必须用 set() 而不是 { } ,因为 { } 是用来创建一个空字典。 更多实例演示:
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:
s.update( x )x 可以有多个,用逗号分开。
我们也可以设置随机删除集合中的一个元素,语法格式如下:
s.pop()输出结果:
Runoob
多次执行测试结果都不一样。
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
语法格式如下:
len(s)
计算集合 s 元素个数。
语法格式如下:
s.clear()清空集合 s。
语法格式如下:
x in s判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
Nine
dai***0@126.com
>>> thisset = set(("Google", "Runoob", "Taobao")) >>> print(thisset) {'Google', 'Runoob', 'Taobao'} >>> thisset.update({"Facebook"}) >>> print(thisset) {'Google', 'Runoob', 'Taobao', 'Facebook'} >>> thisset.update("Yahoo") >>> print(thisset) {'h', 'o', 'Facebook', 'Google', 'Y', 'Runoob', 'Taobao', 'a'}
yijiarenppaa
122***9964@qq.com
集合用 set.pop() 方法删除元素的不一样的感想如下:
1、对于 python 中列表 list、tuple 类型中的元素,转换集合是,会去掉重复的元素如下:
>>> list = [1,1,2,3,4,5,3,1,4,6,5] >>> set(list) {1, 2, 3, 4, 5, 6} >>> tuple = (2,3,5,6,3,5,2,5) >>> set(tuple) {2, 3, 5, 6}
2、集合对 list 和 tuple 具有排序(升序),举例如下:
>>> set([9,4,5,2,6,7,1,8]) {1, 2, 4, 5, 6, 7, 8, 9} >>> set([9,4,5,2,6,7,1,8]) {1, 2, 4, 5, 6, 7, 8, 9}
3、集合的 set.pop() 的不同认为
有人认为 set.pop() 是随机删除集合中的一个元素、我在这里说句非也!对于是字典和字符转换的集合是随机删除元素的。当集合是由列表和元组组成时、set.pop() 是从左边删除元素的如下:
列表实例:
set1 = set([9,4,5,2,6,7,1,8]) print(set1) print(set1.pop()) print(set1)
输出结果:
{1, 2, 4, 5, 6, 7, 8, 9} {2, 4, 5, 6, 7, 8, 9}
元组实例:
set1 = set((6,3,1,7,2,9,8,0)) print(set1) print(set1.pop()) print(set1)
输出结果:
{0, 1, 2, 3, 6, 7, 8, 9} {1, 2, 3, 6, 7, 8, 9}
Sililililidary
282***7697@qq.com
qinjeremy
qin***emy@msn.com
列表的 sort 方法可以实现就地排序(无需创建新对象,字符串按首字母进行排序):
a=[1, 51, 31, -3, 10] a.sort() print(a) s=['a','ab','3e','z'] s.sort() print(s)
[-3, 1, 10, 31, 51] ['3e', 'a', 'ab', 'z']
按集合中的字符长度进行排序:
a=[1, 51, 31, -3, 10] a.sort() print(a) b=['a','ab','3ae','zaaa','1'] b.sort() print(b) c=['a','ab','3ae','zaaa','1'] c.sort(key=len) print(c)
[-3, 1, 10, 31, 51] ['1', '3ae', 'a', 'ab', 'zaaa'] ['a', '1', 'ab', '3ae', 'zaaa']
vipkwd
ser***e@vipkwd.com
右全包含布尔真 :判断 setx 集合的所有元素是否都包含在 sety 集合中
setx.issubset(sety):bool >>> x = {"a", "b", "c"} >>> y = {"f", "e", "d", "c", "b", "a"} >>> x.issubset(y)左全包含布尔真: 判断 sety 集合的所有元素是否都包含在原始 setx 的集合中
setx.issuperset(sety):bool >>> x = {"a", "b", "c"} >>> y = {"f", "e", "d", "c", "b", "a"} >>> y.issuperset(x)右半包含布尔取反:判断集合 sety 中是否有集合 setx 的任一元素(包含返回 False,不包含返回 True)
setx.isdisjoint(sety):bool合并集合(并集):(注意:集合元素的去重、唯一性)
setx.union(sety [, setz...]):set >>> x = {"a", "b", "c"} >>> y = {"f", "d", "a"} >>> z = {"c", "d", "e"} >>> x.union(y, z) {'c', 'd', 'f', 'e', 'b', 'a'}左包含差集: 返回集合的差集,即返回的集合元素包含在第一个集合 x 中,但不包含在第二个集合 y(方法的参数)中setx.difference(sety):set左引用删除交集(无返回值,即直接修改原内存指向)
setx.difference_update(sety):void({'banana', 'cshit', 'vipkwd.com', 'alipay'}, {'google', 'runoob', 'facebook', 'alipay'})>>> type(x.difference_update(y)) <class 'NoneType'> ({'banana', 'cshit', 'vipkwd.com'}, {'google', 'runoob', 'facebook', 'alipay'})左右差集:返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素
setx.symmetric_difference(sety):set左引用删除交集且引用追加右差集(引用操作,无返回值)
setx.symmetric_difference_update(sett):void左右交集:返回两个或更多集合中都包含的元素,即交集
setx.intersection(sety[, seyz....]):set左引用交集
setx.intersection_update(sety):void辅助理解:所有提到 “引用” 俩字的都是函数内部直接操作内存指向,故无返回值;反之:如果一个函数没有实质返回值,那么它一定是在函数内部改变了其他位置内容, 否则这个函数就是 dog shit,因为它不具有实质的意义。