散列类型和逻辑运算

散列类型

散列类型包含集合和字典

集合

定义

>>> 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)
posted @ 2018-09-05 17:08  ChanceySolo  阅读(257)  评论(0编辑  收藏  举报