【Python讲义】WEEK 6

发布于:2022-11-07 ⋅ 阅读:(585) ⋅ 点赞:(0)

写在前面:

本系列文章收录:CAU计算机类公选课《Python语言程序设计》的课堂讲义
课程时间为:2022~2023学年秋季
供各位小白参考~

 

元组(Tuple)

特点:

内置的存储有序数据的结构。

一系列特定顺序排列的元素组成。

可存储不同类型的数据。

元组是不可改变的,创建后不再做任何修改操作。

从形式上来说,元组的所有元素都放在“()”中,两个相邻元素间用“,”分隔。

从内容上来说,可以是数值型、字符串、列表、元组等,同一个元组中,元素的类型可以不同。

元组的作用:作为参数传递给函数调用。

1.元组的创建与删除

(1)使用赋值运算符直接创建元组

元组名  = (元素1,元素2,…,元素n)

在Python中,虽然元组是使用一对小括号把所有的元素括起来,但实际上,小括号不是必须的。可以将一组值用逗号隔开,即可。

元组名  =  元素1,元素2,…,元素n

注意:如果要创建一个元组,即使只有一个元素,也需要在定义元组的时候,在元素的后面加一个“,”。

(2)创建空元组

元组名 = ()

(3)借助range()创建数值型元组

tupe(range(start,end,step)

(4)删除元组

del 元组名

【示例】元组的定义。

tuple_hobby_1 = ('sing','draw','dance','sleep','reading')

print(type(tuple_hobby_1))

tuple_hobby_2 =  'sing','draw','dance','sleep','reading'

print(type(tuple_hobby_2))

tuple_season_1 = ('Spring')

print(type(tuple_season_1))

tuple_season_2 = ('Spring',)

print(type(tuple_season_2))

tuple_empty = ()

print(type(tuple_empty))

del tuple_empty

# print(tuple_empty)

运行结果:

<class 'tuple'>

<class 'tuple'>

<class 'str'>

<class 'tuple'>

<class 'tuple'>

2.元组的常见操作

len(tup) 返回元组的元素个数

max(tup) 返回元组中元素最大的值。

min(tup) 返回元组中元素最小的值。

tuple(tup) 将列表转换为元组。

【示例】元组的常见操作。

# 元组的整体输出

tuple_hobby = ('sing','draw','dance','sleep','reading')

print(tuple_hobby)

# 通过索引,获取元组部分元素

print(tuple_hobby[0],tuple_hobby[3],tuple_hobby[-1])

# 通过切片,获取元组元素

print(tuple_hobby[:3])

# 使用for和enumertate()函数遍历元组的元素

for index,value in enumerate(tuple_hobby):

    print(index,'\t',value)

# 通过值,查看索引

print(tuple_hobby.index('sleep'))

# 查看元素的个数

print(tuple_hobby.count('draw'))

运行结果:

('sing', 'draw', 'dance', 'sleep', 'reading')

sing sleep reading

('sing', 'draw', 'dance')

0     sing

1     draw

2     dance

3     sleep

4     reading

3

1

3.元组与列表的区别

都属于序列

区别:

(1)列表属于可变序列,元组属于不可变序列。

(2)元组不能实现对元素的添加、删除和修改。

(3)

(4)元组比列表的访问和处理的速度快。

(5)列表不能作为字典的键,元组可以的。

转换:

tuple()

list()

字典

映射

字典是可变序列,无序,保存的内容是以“键:值”的形式存放。

键是唯一的,而值是可以有多个。

字典特点:

(1)通过键来访问元素,而不是索引。

(2)字典是任意对象的无序集合。

(3)字典是可变的,可以嵌套。

(4)键必须唯一,不可变。

字典的创建:

字典名 = {key1:value1,key2:value2,…,keyn:valuen}

【示例】字典的创建。

dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}

print(dict_school)

dict_empty = {}

print(type(dict_empty))

# 通过zip()函数创建字典

key_en = ['cau','pku','tsinghua','fudan']

value_cn = ['中国农业大学','北京大学','清华大学','复旦大学']

dict_list_school = dict(zip(key_en,value_cn))

print(dict_list_school)

schoollist = dict(cau='中国农业大学',pku='北京大学',tsinghua='清华大学')

print(schoollist)

运行结果:

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}

<class 'dict'>

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学'}

2.字典元素的访问与遍历

字典元素的访问,通过键访问。

通过items()遍历。【示例】字典元素的访问与遍历。

dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}

print(dict_school['pku'])

print("所在的大学:",dict_school.get('cau','此大学不存在'))

# 通过items()方法

for item in dict_school.items():

    print(item)

for key,value in dict_school.items():

print(key,'\t',value)

运行结果:

北京大学

所在的大学: 中国农业大学

('cau', '中国农业大学')

('pku', '北京大学')

('tsinghua', '清华大学')

('fudan', '复旦大学')

cau         中国农业大学

pku         北京大学

tsinghua        清华大学

fudan      复旦大学

3.字典元素的常见操作

(1)增加字典元素

dict_name[key]=value

(2)删除字典元素

del dict_name

(3)清空字典元素

dict_name.clear()

(4)字典元素的修改

用新“值”替换原来该“键”的值。

(5)字典元素的查找

1)通过键-值对的方式查找。

2)通过get()、keys()、values()以及items()函数查找。

【示例】字典元素的操作。

dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}

print(dict_school)

dict_school['sju']='上海交通大学'

print(dict_school)

del dict_school['fudan']

print(dict_school)

print(dict_school.pop('sju'))

print(dict_school)

dict_school['cau'] = '中国农大'

print(dict_school)

dict_school.clear()

print(dict_school)

运行结果:

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学'}

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'fudan': '复旦大学', 'sju': '上海交通大学'}

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学', 'sju': '上海交通大学'}

上海交通大学

{'cau': '中国农业大学', 'pku': '北京大学', 'tsinghua': '清华大学'}

{'cau': '中国农大', 'pku': '北京大学', 'tsinghua': '清华大学'}

{}

【示例】字典元素的查找。

dict_school = {'cau':'中国农业大学','pku':'北京大学','tsinghua':'清华大学','fudan':'复旦大学'}

print(dict_school.get('pku'))

print(dict_school.get('cau1','中国农大'))

print(dict_school.keys())

print(dict_school.values())

print(dict_school.items())

运行结果:

北京大学

中国农大

dict_keys(['cau', 'pku', 'tsinghua', 'fudan'])

dict_values(['中国农业大学', '北京大学', '清华大学', '复旦大学'])

dict_items([('cau', '中国农业大学'), ('pku', '北京大学'), ('tsinghua', '清华大学'), ('fudan', '复旦大学')])

集合

用于保存不重复的元素,有可变集合和不可变集合两种。

在形式上,集合的所有元素都放在一对大括号中,两个相邻的元素可使用“,”隔开。

集合优势:去重。

集合只有值。

1.集合的创建

(1)通过{}直接创建

setname = {元素1,元素2,…,元素n}

(2)使用set()创建

【示例】集合的创建示例。

set_hobby = {'sing','draw','dance','sleep','reading'}

print(type(set_hobby),set_hobby)

str1 = '喜迎二十大'

print(set(str1))

运行结果:

<class 'set'> {'dance', 'sleep', 'reading', 'sing', 'draw'}

{'大', '二', '十', '喜', '迎'}

2.集合的常见操作

(1)添加元素

add()

(2)追加元素

update()

(3)删除元素

discard()方法 删除集合中的指定数据,如果数据不存在,也不报错。

pop()和remove()方法  删除一个元素。

clear()  清空集合。

(4)查找元素

在集合中用in判断数据在集合序列;not in 判断数据不在集合里面。

【示例】集合的常见操作。

set_hobby = {'sing','draw','dance','sleep','reading'}

set_hobby.add('eating')

print(set_hobby)

set_hobby.update('playing')

print(set_hobby)

set_hobby.remove('eating')

print(set_hobby)

set_hobby.pop()

print(set_hobby)

print('sleep' in set_hobby)

运行结果:

{'sleep', 'sing', 'dance', 'reading', 'eating', 'draw'}

{'sleep', 'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'eating', 'draw'}

{'sleep', 'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'draw'}

{'p', 'y', 'n', 'i', 'sing', 'g', 'dance', 'l', 'reading', 'a', 'draw'}

False

容器中的公共操作

1.+ 字符串、列表和元组

功能:连接

【示例】

str1 = '不忘初心'

str2 = '牢记使命'

print(str1 + str2)

list1 = list(range(0,10,2))

list2 = list(range(1,10,2))

print(list1 + list2)

运行结果:

不忘初心牢记使命

[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]

2.*

功能:复制

3.in  not in

功能:判断是否存在

4.len()   del()   max()   min()

5.类型转换

tuple()

list()

set()

【上机实验】

【元组的应用】利用元组的操作,模拟评委打分,打分标准:去掉一个最高分和一个最低分,求选手的平均成绩。

tup_score= (98,87,95,89,97,96,83)

【字典的应用】某学校要进行全国计算机等级考试,在Python语言程序设计上机考核环节,需要随机生成10个计算机号,计算机编号以6602020开头,后面3位依次是 (001,002,003,010)。请利用字典操作,生成计算机编号,并默认每个卡号的初始密码为"python"。其中,输出计算机编号和密码信息,格式如下:

计算机编号             登录密码

6602020001              python

【集合的应用】某公司人力资源部想在单位做一项关于工作满意度问卷调查。

为了保证样本选择的客观性,他将公司全体人员按顺序编号,先用计算机生成了N个1~200之间的随机整数(N<=200),N是用户输入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的员工编号,然后再把这些数从小到大排序,按照排好的顺序去找员工做调查,请你协助人力资源部的负责人完成“去重”与排序工作。


网站公告

今日签到

点亮在社区的每一天
去签到