set built-in function

集合类型

集合对象是一组无序排列的可哈希的值,集合可以作为字典的键。因为集合是无序的,不可以为集合创建索引或执行切片操作,也没有键可以用来获取元素的值。

集合有两种不同的类型,可变集合和不可变集合。可变集合不是可哈希的值

集合类型中元素不可重复

创建集合类型的方法只有一个,就是集合的工厂方法set()和frozenste(),括号内的参数必须是可迭代的对象,例如一个文件或着一个字典

set(‘book‘)

>>>[‘b‘,‘k‘,‘o‘,‘o‘]

当进行集合类型的交集并集差集时,所产生的结果类型和左操作数的类型相同,例如:

s = set(‘continue‘)
t = frozenset(‘break‘)

v = s | t
print(v)
>>>{‘o‘, ‘u‘, ‘t‘, ‘n‘, ‘e‘, ‘k‘, ‘c‘, ‘i‘, ‘b‘, ‘r‘, ‘a‘}
print(type(v))
>>><class ‘set‘>      # 产生的类型和 s 的类型相同

dir(set):

[‘__and__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__gt__‘, ‘__hash__‘, ‘__iand__‘, ‘__init__‘, ‘__ior__‘, ‘__isub__‘, ‘__iter__‘, ‘__ixor__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__or__‘, ‘__rand__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__ror__‘, ‘__rsub__‘, ‘__rxor__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__sub__‘, ‘__subclasshook__‘, ‘__xor__‘, ‘add‘, ‘clear‘, ‘copy‘, ‘difference‘, ‘difference_update‘, ‘discard‘, ‘intersection‘, ‘intersection_update‘, ‘isdisjoint‘, ‘issubset‘, ‘issuperset‘, ‘pop‘, ‘remove‘, ‘symmetric_difference‘, ‘symmetric_difference_update‘, ‘union‘, ‘update‘]

1.add(obj) 在集合中添加对象obj

s = set(‘book‘)
s.add(‘shop‘)
print(s)

>>>{‘o‘, ‘k‘, ‘shop‘, ‘b‘}

2.clear 删除集合中的所有元素

s = set(‘book‘)
s.clear()
print(s)

>>>set()

3.s.copy 返回一个新集合,它是集合s的浅复制

4.s.difference(t)  返回一个新集合,该集合是s的成员,但不是t的成员,相当于s - t(差分操作)

s = set(‘book‘)
t = set(‘shop‘)
v = s.difference(t)
print(v)

>>>{‘b‘, ‘k‘}

5.s.difference_update(t) s中的成员是属于s但不包含在t中的元素,它与difference的区别在于difference会返回一个新集合,而它不会

s = set(‘book‘)
t = set(‘shop‘)
s.difference_update(t)
print(s)

>>>{‘b‘, ‘k‘}

6.s.discard(obj) 如果obj是集合s中的元素。从集合s中删除对象obj

s = set(‘book‘)
s.discard(‘o‘)
print(s)

>>>{‘k‘, ‘b‘}

7.s.intersection(t) 返回一个新集合,是s和t的交集,等价操作符 s & t

s = set(‘book‘)
t = set(‘shop‘)
v = s.intersection(t)
print(v)

>>>{‘o‘}

8.s.intersection_update(t) 和上面类似,只是不返回新集合

9.s.isdisjoint(t) 如果集合s和t没用交集,返回True,否则返回False

s = set(‘book‘)
t = set(‘shp‘)
v = s.isdisjoint(t)
print(v)

>>>True

10.s.issubset(t) 如果s是t的子集,返回True,否则返回False

11.s.issuperset(t) 如果t是s的超集,返回True,否则返回False

s = set(‘bookshop‘)
t = set(‘book‘)
v = s.issuperset(t)
print(v)

>>>True

12.pop() 删除集合中的任意一个对象,并返回它

s = set(‘bookshop‘)
v = s.pop()
print(v)

>>>p    # 不唯一,可以是s中任意一个对象

13.s.remove(obj) 删除对象obj,如果集合里面没有obj,则有keyerror错误

14.s.symmetric_difference(t) 返回以个新集合,该集合是s或t的成员,但不是s和t共有的成员。对称差分操作,等价操作符是s ^ t

s = set(‘bookshop‘)
t = set(‘break‘)
v = s.symmetric_difference(t)
print(v)

>>>{‘o‘, ‘r‘, ‘p‘, ‘a‘, ‘e‘, ‘h‘, ‘s‘}

15.s.symmetric_difference_update(t) 和上面类似,只是不返回新集合

16.union 并集,等价操作符是s | t

s = set(‘bookshop‘)
t = set(‘break‘)
v = s.union(t)
print(v)

>>>{‘s‘, ‘a‘, ‘b‘, ‘r‘, ‘p‘, ‘e‘, ‘k‘, ‘o‘, ‘h‘}

17.s.update(t) 用t中的元素修改s

s = set(‘bookshop‘)
t = set(‘break‘)
s.update(t)
print(s)

>>>{‘p‘, ‘e‘, ‘r‘, ‘b‘, ‘o‘, ‘k‘, ‘h‘, ‘a‘, ‘s‘}

以上

时间: 2024-07-28 18:21:52

set built-in function的相关文章

Python_eval()

1 ''' 2 eval()用来把任意字符串转化为Python表达式并进行求值 3 ''' 4 print(eval('3+4')) #计算表达式的值 5 a=3 6 b=4 7 print(eval('a+b')) #这时候要求变量a和b已存在 8 import math 9 eval('help(math.sqrt)') 10 # Help on built - in function sqrt in module math:\ 11 # sqrt(...) 12 # sqrt(x) 13

(转) Deep Reinforcement Learning: Playing a Racing Game

Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playing Out Run, session 201609171218_175epsNo time limit, no traffic, 2X time lapse Above is the built deep Q-network (DQN) agent playing Out Run, trained

Project Euler——13.Larger Sum总结

今天花了一天的时间在Linux 系统上完成了欧拉计划第13题的Larger Sum编程(花费的时间有点长啊).既然耗了这么长的时间,那就要好好的总结一下,不然也对不起这一天的时间.这次主要是在ubantu 上编程,简单的设计到了编译.调试.链接和简单的编写Makefile. Larger Sum 中涉及到了超大数(50位)的计算,在C编译语言中,int 为32位,最大的整数long long int也只有pow(2,64)大约19位,这样完全不能用简单的四和运算来求和.于是代码中,我使用字符串的

Python2.x和3.x主要差异总结

开始使用Python之后就到处宣扬Python如何如何好,宣传工作的一大重要诀窍就是做对比,比如原先用Java的时候做个什么东西要写多少代码,怎 么个别扭,现在用Python实现同样的功能怎么个简单等等.不过谈Python,不管怎么谈,老会谈到Python2.x和3.x的版本差异问题,这个 差异真不是一般的大,从一个简单的print到核心库的改进都牵扯到了很多,现在总结了一些主要的差异点. 基本类型 (1) 整形 在python 2.x中,有两种整数类型,一般的32位整数和长整数,长整数都是以L

按字典的值对字典进行排序

有时有一种需要,求要按字典的值对字典值进行排序: 下面有两种方法 #!/usr/bin/env python #coding:utf-8 #@Author:Andy from random import randint # generate a random dict dict1 = {x :randint(1, 100) for x in "abczyx"} print(dict1) #method 1 # use built in function sorted ,zip dict

JSON_in_js

parse [pɑ:rs]  从语法上描述或分析(词句等),解析 fetch [f?t?]vt.接来(某人);使发出;吸引;拿取 vi.取来;抵达,到达  Using JSON: Fetch a JSON string,JSON.Parse the JSON string notation [no??te??n]n.记号,标记法  bracket ([]) notation,dot (.) notation, curly braces {} https://www.w3schools.com/j

java web 网站头像上传处理 (springmvc +bootstrap+cropper)

制作头像上传.请根据您的实际需求,修改代码,不完全正确,仅供参考! 前端页面设计使用bootstrap ,头像预览和剪裁工具使用cropper 后台使用springmvc. 现在来看前端的页面设计 前端页面设计,自然需要bootstrap .jqury 和cropper ,这可以自行去网上百度查找 剪裁效果图 html 文件 <!DOCTYPE html> <html> <head lang="en"> <meta charset="

java web 站点头像上传处理 (springmvc +bootstrap+cropper)

制作头像上传.请依据您的实际需求.改动代码,不全然正确.仅供參考! 前端页面设计使用bootstrap ,头像预览和剪裁工具使用cropper 后台使用springmvc. 如今来看前端的页面设计 前端页面设计,自然须要bootstrap .jqury 和cropper ,这能够自行去网上百度查找 剪裁效果图 html 文件 <!DOCTYPE html> <html> <head lang="en"> <meta charset="

Python学习之初识Python

Python 作为一种面向对象,解释型的程序语言.拥有简洁(通过缩进来区别不同的语句块),丰富强大的库. 可以将多个模块导入使用的特性又被称之为脱水语言. Django可作为Python的Web开发框架 语句块: Python通过相同的缩进来确定哪些代码为同一个语句块.在程序的开发中特别需要注意 变量: Python的变量不需要事先声明.你给何种类型的值赋值给变量名,该变量就是什么类型的.在Python中,变量只是一个标签,指向某一个区域的内存块.对于变量值,在内部会有一个引用记数,当某一个内存

Using the built-in functions of PHP

PHP has a huge range of built-in functions designed to perform predefined tasks such as converting a string to upper case, getting the dimensions of an image, or sending an email. In this video I'll explain some of the basic features of working with