🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅
✒️个人主页:小鹏linux
💊个人社区:小鹏linux(个人社区)欢迎您的加入!
目录
1.3 集合 (set) 、列表 (list) 、元组 (tuple) 相互转换
1.集合( set )
集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的。 集合对象还支持联合(union), 交集(intersection),差集(difference)等数学运算。 |
1.1 数学运算及演示
数学运算 |
作用 |
& |
求交集 |
| |
求并集 |
- |
求差集 |
x^z |
对称差集(在x或z中,但不会同时出现在两者中) |
In [12]: x Out[12]: {'a', 'b', 'c', 'd'} In [13]: y Out[13]: {'e', 'h', 'l', 'o'} In [14]: z Out[14]: {'a', 'm', 'p', 's'} |
|
In [16]: x&z Out[16]: {'a'} |
|
In [17]: x|y Out[17]: {'a', 'b', 'c', 'd', 'e', 'h', 'l', 'o'} |
|
In [18]: x-y Out[18]: {'a', 'b', 'c', 'd'} |
|
In [19]: x^z Out[19]: {'b', 'c', 'd', 'm', 'p', 's'} |
|
for i in x print i |
集合(set)是一个无序的不重复元素序列。 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 |
1.2 集合创建格式及实例演示
parame = {value01,value02,...} 或者 set(value) |
实例(Python 3.0+)
>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket) # 这里演示的是去重功能 {'orange', 'banana', 'pear', 'apple'} >>> 'orange' in basket # 快速判断元素是否在集合内 True >>> 'crabgrass' in basket False >>> # 下面展示两个集合间的运算. ... >>> a = set('abracadabra') >>> b = set('alacazam') >>> a {'a', 'r', 'b', 'c', 'd'} >>> a - b # 集合a中包含而集合b中不包含的元素 {'r', 'd', 'b'} >>> a | b # 集合a或b中包含的所有元素 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} >>> a & b # 集合a和b中都包含了的元素 {'a', 'c'} >>> a ^ b # 不同时包含于a和b的元素 {'r', 'd', 'b', 'm', 'z', 'l'}
1.3 集合 (set) 、列表 (list) 、元组 (tuple) 相互转换
In [21]: b=[1,2,3,12,1,3,3,4,1,3,4] In [22]: b Out[22]: [1, 2, 3, 12, 1, 3, 3, 4, 1, 3, 4] In [23]: c=set(b) #第一中去重方法 In [24]: c Out[24]: {1, 2, 3, 4, 12} In [25]: d=list(c) In [26]: d Out[26]: [1, 2, 3, 4, 12] In [27]: c Out[27]: {1, 2, 3, 4, 12} In [28]: e=tuple(c) In [29]: e Out[29]: (1, 2, 3, 4, 12) In [30]: f=set(e) |
alist = [1,2,3,12,12,3,4,5,11,2,2] #第二种 for x in alist: if alist.count(x) >1: alist.remove(x) alist.sort() print(alist) |
alist = [1,2,3,12,12,3,4,5,11,2,2] 第三种 blist = [ ] for i in alist: if i not in blist: #print("重复的") blist.append(i) print(blist) |
1.4 公共方法
运算符 |
Python表达式 |
结果 |
描述 |
支持的数据类型 |
+ |
[1, 2] + [3, 4] |
[1, 2, 3, 4] |
合并 |
字符串、列表、元组“a”+”b”->”ab” [1,2]+[3,4]->[1,2,3,4] (1,2)+(3,4) ->(1,2,3,4) |
* |
'Hi!' * 3 |
['Hi!' 'Hi! 'Hi!'] |
复制 |
字符串、列表、元组 |
in |
3 in (1, 2, 3) |
True |
元素是否存在 |
字符串、列表、元组、字典 |
not in |
4 not in (1,2, 3) |
True |
元素是否不存在 |
字符串、列表、元组、字典 |
2.集合的基本操作
2.1添加元素
语法格式如下:
s.add( x )
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
实例(Python 3.0+)
>>> thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.add("Facebook") >>> print(thisset) {'Taobao', 'Facebook', 'Google', 'Runoob'}
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:
s.update( x )
x 可以有多个,用逗号分开。
实例(Python 3.0+)
>>> thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.update({1,3}) >>> print(thisset) {1, 3, 'Google', 'Taobao', 'Runoob'} >>> thisset.update([1,4],[5,6]) >>> print(thisset) {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'} >>>
2.2 移除元素
语法格式如下:
s.remove( x )
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
实例(Python 3.0+)
>>> thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.remove("Taobao") >>> print(thisset) {'Google', 'Runoob'} >>> thisset.remove("Facebook") # 不存在会发生错误 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Facebook' >>>
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:
s.discard( x )
实例(Python 3.0+)
>>> thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.discard("Facebook") # 不存在不会发生错误 >>> print(thisset) {'Taobao', 'Google', 'Runoob'}
我们也可以设置随机删除集合中的一个元素,语法格式如下:
s.pop()
脚本模式实例(Python 3.0+)
thisset = set(("Google", "Runoob", "Taobao", "Facebook")) x = thisset.pop() print(x) 输出结果: $ python3 test.py Runoob
多次执行测试结果都不一样。
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
3.集合内置方法完整列表
方法 | 描述 |
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 返回集合的交集。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |
4.引用
用 id() 来判断两个变量是否为同一个变量的引用 在Python中值是靠引用来传递的 我们可以用id()来判断两个变量是否为同一个变量的引用。 我们可以把id理解为那块内存的地址表示。 可变类型和不可变类型 不可变类型:字符串、数字、元组 可变类型:列表,字典 可变类型可以修改值 (id相等,修改一个另一个也改变) 不可变类型不能修改值(id不相等修改一个另一个不变) |
4.1 引用的应用-三种方式交换两个数
a = [1,2] b = {"name":"张三","age":18} print("交换前:") print("a==",id(a)) print("b==",id(b)) |
第一种方式:使用第三方变量
c = a a = b b = c |
第二种方式:使用两个数和在减掉另一个数
a = a+b #a = 9 b = a-b #9-5=4 a = a-b #9-4=5 |
第三种方式: Python 特有方式
a,b = b,a |
👑👑👑结束语👑👑👑
为大家推荐一款刷题神奇 点击链接访问牛客网
各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!
牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析