散列类型和逻辑运算

散列类型#

散列类型包含集合和字典

集合#

定义#

>>> myset = {1,2,3,4,1}
>>> myset
{1, 2, 3, 4}
>>> type(myset)
<class 'set'>

由以上定义可见,集合可以用来去重,其值唯一

运算#

& 交集 (获取两集合中相同的元素)

>>> myset1 = {1,2,3,4}
>>> myset2 = {2,3,4,5}
>>> myset = myset1 & myset2
>>> myset
{2, 3, 4}

| 并集 (将两个集合叠加)

>>> myset1 = {1,2,3,4}
>>> myset2 = {2,3,4,5}
>>> myset = myset1 | myset2
>>> myset
{1, 2, 3, 4, 5}

-差集 (获取前集合中有、后集合中没有的元素)

>>> myset1 = {1,2,3,4}
>>> myset2 = {2,3,4,5}
>>> myset = myset2 - myset1
>>> myset
{5}

集合的基本操作#

①add (在集合末尾添加一个元素)

>>> myset = {1,2,3}
>>> myset.add(4)
>>> myset
{1, 2, 3, 4}

②update (更新集合里面的元素,要么以元素的形式添加,要么以列表或者元组的形式添加)

>>> myset = {1,2,3}
>>> myset.update([4,5,6])
>>> myset
{1, 2, 3, 4, 5, 6}
>>> myset.update((7,8,9))
>>> myset
{1, 2, 3, 4, 5, 6, 7, 8, 9}

①pop (随机删除一个数)

>>> myset = {1,2,3}
>>> myset.pop()
1
>>> myset.pop()
2
>>> myset
{3}

②remove (指定内容删除元素)

>>> myset = ['I','LOVE','PYTHON','!']
>>> myset.remove('!')
>>> myset
['I', 'LOVE', 'PYTHON']

字典#

定义#

>>> mydic = {'name':'SuXin','age':18,'sex':'Man'}
>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}

字典以键值对形式定义,其中键唯一,值可以不唯一,一个键可以对应多个值,但一个值只能对应一个键

字典的操作#

copy(和列表的copy一样)

>>> mydic = {'name':'SuXin','age':18,'sex':'Man'}
>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}
>>> mydic1 = mydic.copy()
>>> mydic1
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}

setdefault(如果要添加的键值对在原字典里存在,则返回该字符,如果不存在,则添加)

>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}
>>> mydic.setdefault('name','SuXin')
'SuXin'
>>> mydic.setdefault('height','180')
'180'
>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man', 'height': '180'}

pop(指定键名删除键值对)

>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man', 'height': '180'}
>>> mydic.pop('height')
'180'
>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}

popitem(随机删除键值对)

>>> mydic
{'name': 'SuXin', 'age': 18, 'sex': 'Man'}
>>> mydic.popitem()
('sex', 'Man')
>>> mydic
{'name': 'SuXin', 'age': 18}

clear(清除整个字典里面的所有键值对)

>>> mydic
{'name': 'SuXin', 'age': 18}
>>> mydic.clear()
>>> mydic
{}

update(添加一个字典或者多个键值对进去,也可用这个方法来拼接字典)

>>> mydic = {'name':'SuXin','gae':18}
>>> mydic1 = {'sex':'Man'}
>>> mydic.update(mydic1)
>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man'}
>>> mydic.update({'height':180,'hoby':'python'})
>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man', 'height': 180, 'hoby': 'python'}

get(查取值,如果字典中包含,则返回该值,不存在则不返回任何信息)

>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man', 'height': 180, 'hoby': 'python'}
>>> mydic.get('name')
'SuXin'

key(查取键)

>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man', 'height': 180, 'hoby': 'python'}
>>> mydic.keys()
dict_keys(['name', 'gae', 'sex', 'height', 'hoby'])

获取键名流程:先用keys提取所有键名,转换成列表,然后赋值给一个变量,通过查找列表元素的方式查找键名

values(获取字典中所有值,以列表的形式输出)

>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man', 'height': 180, 'hoby': 'python'}
>>> mydic_values = mydic.values()
>>> mydic_values
dict_values(['SuXin', 18, 'Man', 180, 'python'])

items(获取字典所有信息,以元组的形式输出)

>>> mydic
{'name': 'SuXin', 'gae': 18, 'sex': 'Man', 'height': 180, 'hoby': 'python'}
>>> mydic.items()
dict_items([('name', 'SuXin'), ('gae', 18), ('sex', 'Man'), ('height', 180), ('hoby', 'python')])

比较运算符#

== 等于
!= 不等于
>= 大于等于
<= 小于等于

判断#

语法

if 判断条件:
	条件成立所要执行的动作
elif 添加判断条件:
	条件成立所要执行的动作
else:
	判断条件不成立所要执行的动作
#判断一个数在5和10之间
a = 6
if a > 5 and a <10:
    print("True")
else:
    print("False")

以上是一个简单的判断语句,还可以将其改写,实现相同的功能

#判断一个数在5和10之间
a = 6
if a > 5:
    if a < 10:
        print ("True")
    else:
        pass
else:
    print ("False")

接下来再写一个,判断这个数在哪个区间

#判断一个数所在的区间
a = 16
if a <= 5:
    print ("该数介于0和5之间")
elif a <=10:
    print ("该数介于5和10之间")
elif a <=15:
    print ("该数介于10和15之间")
elif a <=20:
    print ("该数介于15和20之间")
else:
    print ("超出计算范围!")

三目运算#

假设现在需要判断一个值是否大于等于10,如果成立,返回该值并说明,不成立则退出程序

#判断一个数是否大于等于5
a = 8
if a >= 5:print (a,"大于等于5")else:
    pass

而使用三目运算则会大大减少代码量

三目运算的语法:

条件成立时 if 判断的条件 else 条件不成立时
#判断一个数是否大于等于5
a = 2
print (a,"大于等于5") if a >= 5 else print(' ')

注:三目运算只适合于一个判断条件,一般不常用

循环控制#

while循环#

语法

while 判断条件:
    循环体

例如

#连续打印小于等于10的所有自然数
a = 0
while a <= 10:
    print (a)
    a += 1

如果需要遍历整个列表,也需要用到循环

#遍历整个列表,提取小于等于5的元素
mylist = [1,2,3,4,5,6,7,8,9,10,11]
i = 0
while mylist[i] <= 5:
    print(mylist[i])
    i += 1
#将列表里的元素分别与20比较,打印出大于20的元素
mylist = [1,2,4,44,34,34,65,63,77,567,678]
i = 0
while i <= len(mylist)-1:
    if mylist[i] > 20:
        print ("%s大于20"%mylist[i])
    i += 1

while True:为死循环,多用于阻塞使用。

for循环#

语法

for 变量 in 被遍历体:
    循环体

例如

#遍历整个列表,输出每个元素
mylist = [1,2,4,44,34,34,65,63,77,567,678]
for i in mylist:
    print (i)

break(跳出当前的循环)

#遍历整个列表,如果有元素为5,则停止循环
for i in range(1,20):
    if i == 5:
        break
    print (i)

continue (跳过此处的动作,继续后边的循环)

#遍历整个列表,如果有元素为5,则不执行该条件下的动作,继续后边的动作
for i in range(1,10):
    if i == 5:
        continue
    print (i)

作者:ChanceySolo

出处:https://www.cnblogs.com/chancey/p/9593254.html

版权:本作品采用「ChanceySolo-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ChanceySolo  阅读(259)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示