Python

简介: 【10月更文挑战第10天】

【10月更文挑战第10天】

集合的概念以及定义(包括空集合)

集合的定义:{元素1,元素2.......}

i={1,5,6}
print(type(i))
#<class 'set'>

那么空集合该怎么进行使用呢?

如果我们光写一个花括号的话,那么这个是不是就能表示空集合呢?

答案是不能的

q={}
print(type(q))
#<class 'dict'>

最后打印出来的类型是一个字典

所以说一个空的花括号表示的是字典

其实空集合的创建是set()

o=set()
print(type(o))
#<class 'set'>

所以set就是集合的表示方式

创建空集合一定要使用set()

集合的特点

1.集合是和字典是一样的,元素是没有顺序的

所以我们在打印集合的时候打印出来的数据的顺序都是随机的

2.集合内的元素都是唯一的

如果我们在定义集合元素的时候有多个相同的元素的话,那么我们在打印的时候指只会保留一个

j={1,2,3,'hu',5,6,1,5}
print(j)

#{1, 2, 3, 5, 6, 'hu'}

所以集合是无序不重复的散列

集合的操作

1.去重:利用集合的特点---元素是唯一的

#对列表进行去重的操作
li=[12,56,89,56,16]

#将列表转换为集合的类型
j2=set(li)
print(j2)
#{56, 89, 12, 16}
#然后将集合转换为列表,然后这个列表就完成了去重的操作了
li=list(j2)
print(li)

如果一个列表需要进行去重的话,我们就可以将这个列表转换为集合然后进行去重的操作

2.修改

对于集合的话我们是没有直接的修改的操作的

我们只能先删除再添加

3.添加

3.1 add(元素)---添加元素到集合中

我们说加什么add就加什么,不会做额外的操作

#添加操作
j={1,2,3,'hu',5,6,1,5}
j.add("你好啊")
print(j)
#{1, 2, 3, 'hu', 5, 6, '你好啊'}

3.2 upodate(序列/散列)

这个函数会将我们输入的要添加的序列或者是散列给拆分了

#添加序列的话
#update(序列/散列)
j.update("你好")
print(j)
#{1, 2, 3, 5, 6, 'hu', '你', '好', '你好啊'}
#可以发现我们后面输入的被拆开了
#将我们输入的序列或者是散列类型的数据拆开放到集合中

括号内是不能够写数字的,会报错,因为括号内只能写序列和散列

4.删除

4.1remove(指定元素)

我们是需要指定值进行操作的

j={1,2,3,'hu',5,6,1,5}
j.remove("hu")
print(j)
#{1, 2, 3, 5, 6}
j.remove(5)
print(j)
#{1, 2, 3, 6}

4.2pop()---删除随机元素

之所以删除随机元素,因为数据的位置都是随意变动的

#{1, 2, 3, 6}

j.pop()

print(j)
#{2, 3, 6}

5.交集、并集

只有集合里面存在这个概念

5.1交集----- &

取出两个集合中相同的内容


a={1,2,3,4}
b={3,4,5,6}
print(a&b)
#{3, 4}

5.2并集----- |

两个集合合并在一起

a={1,2,3,4}
b={3,4,5,6}
print(a|b)
#{1, 2, 3, 4, 5, 6}

集合中每个数据都是唯一的

那么出现的两个3和两个4最后都只保留了一个

要遵循集合的规则

至此,我们的数据类型就学完了

运算符的优先级

|运算符|描述
|
|-|-|
||幂运算|
|+、-|一元运算符(正负号)|
|、/、%|算术运算符(乘、除、取余)|
|+、-|(加减)|
|<、>、<=、>=|比较运算符|
|==、!=||
|=、%=、/=、-=、+=、
=、
=|赋值运算符
|
|is、is not|身份运算符|
|in、not in|成员运算符|
|not > and > or|逻辑运算符|

赋值元素符就是左右两边的内容进行指定的算术运算再将结果赋值给左边的变量

成员运算符

成员运算符有两个:in not in

成员运算符在序列和散列居多

主要是判断某个内容在这一堆是否存在

使用格式:数据 in 序列/散列

判断数据是不是序列/散列的成员

成员运算符的使用

#判断字符p是不是python的成员
print('p'in'pyhton')
#True

li=['李四''张三''王二']
if "小明" in li:#判断小明在不在名字列表里面
    print(True)
else:
    print(False)
#False

#判断字符q是否不是python的成员
print('q'not in'pyhton')
#not in 的操作就是和in的操作是相反的

身份运算符

看的是你引用的是不是同一块内存空间的内容

is判断两个内容是不是同一个地址

is not相反

a=1
b=a
c=2
print(a is b)#True
#a和b指定同一块空间
print(a is c)#False
#a和c不指向同一块空间

print(f'a:{id(a)}')
print(f'b:{id(b)}')
print(f'c:{id(c)}')
#a:1535758792
#b:1535758792
#c:1535758808


#可见, 我们通过id()这个函数我们就能看的出a和b二档地址与c是不同的

#is判断两个内容是不是同一个地址
#is  not相反

使用id()能查看数据的地址

可变复制---copy()

在进行重要数据的赋值之前

我们需要对这个数据进行一个拷贝复制,因为这个数据一但被修改了就不能回复了

所以我们需要提前将这个数据进行复制一下

对于可以修改的数据类型,之前的数据就没有了

且不能恢复

如果想保留修改之前的数据

我们需要提前备份一份数据

我们需要使用到copy()函数

copy()函数的使用方式:

li=[1,2,3,4,5]
print(id(li))#72456872
li1=li.copy()
print(li1)
#[1, 2, 3, 4, 5]
print(id(li1))#72456840

我们使用copy去备份数据的时候,copy会去额外申请一个空间去放这个备份的数据

备份类型直接对于只能修改的类型

列表、字典、集合

如果我们是想通过赋值来达到备份的效果,这个是不可能的

因为我们赋值出来的对象与原先的对象都指向着同一块空间的

那么我们将原先对象进行改变,那么备份的对象也会被改变,因为都指向同一块空间

所以我们需要copy()来专门进行备份的操作

通过copy会额外申请一块空间

相关文章
|
6天前
|
算法 Unix 数据库
Python 特点
Python 特点。
13 4
|
机器学习/深度学习 人工智能 数据挖掘
为什么越来越多的人喜欢用Python?
Python编程语言在过去的几年里取得了巨大的成功,吸引了越来越多的人,从初学者到专业开发者,都喜欢使用它。那么,为什么Python如此受欢迎?这篇文章将探讨Python的吸引力以及它在不同领域的应用。
|
机器学习/深度学习 XML 存储
认识 Python
人生苦短,我用 Python —— Life is short, you need Python
|
自然语言处理 Java 程序员
初识python
Python是1门程序设计语言。在开发者眼里,语言可以分为3类: 1.自然语言:人能听懂的语言,例如汉语,英语,法语等等。 2.机器语言:机器能听懂的语言,机器只能听懂0和1。 3.程序设计语言:机器能够听懂,人能听懂的语言,例如Python,C,C++ 、C# 、Java等等。 同样的,在开发者眼里还可以分为高级程序设计语言和低级程序设计语言。越接近于人类的语言越高级 ,例如Python;越接近于机器语言越低级,例如汇编就属于低级程序员设计语言。
初识python
|
安全 Python
每天一个Python小技巧(5)
每天一个Python小技巧(5)
|
Python
Python 技巧篇-让我的程序暂停一下
Python 技巧篇-让我的程序暂停一下
244 0
Python 技巧篇-让我的程序暂停一下
|
前端开发 Python
python练习20220112
python练习20220112
84 0
|
Python
Python—Python 问题
离线安装库
131 0
|
Python
Python小技巧
One For All!!! 导包 取别名 from math as foobar from module1 import open as open1 from module2 import open as open2 查找Python的模块位置 >>> import sys,pprint >>> pprint.
833 0