版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章组合数据类型生活中的容器Python中的容器0123456Python3box——字符串box[2]Python中的容器01234561003.142+3j'ok'Truebox——元组123(1,2,3)(100,3.14,2+3j,'ok',True,(),(1,2,3))Python中的容器2+3j'ok'Truebox——列表1231003.143512120262005000123456[12,26,35,100,120,200,500]组合数据类型组合数据类型序列类型字符串(str)元组(tuple)列表(list)集合类型集合(set)映射类型字典(dict)序列类型(有序)字符串(str)——"Helloworld!"元素是字符内容不可变列表(list)——[1,9,7,8,10,17]元素可以是各种不同类型(包括组合类型)内容可以改变元组(tuple)——("Tom",20,'M',99.5,65)元素可以是各种不同类型(包括组合类型)内容不可变若有s="Helloworld!"则s[1]="A"是错误的修改,画彩色螺旋序列操作(1)操作描述(s代表一个序列)s1+s2连接两个序列,必须同类型。s*nor
n*s将序列s重复n次,生成一个新的序列。xinsxnotins判断x是否为序列s的元素,如果是字符串则是子串的判断。加上not得到相反的结果。len(s)计算序列s的元素个数。s[i]引用序列s中索引为i的元素。s[m:n]切片。序列操作(2)操作描述(s代表一个序列)forxins遍历序列s。min(s)计算序列s的最小元素。max(s)计算序列s的最大元素。sum(s)计算序列s的元素和,元素必须为数值型。s.index(x)在序列s中查找元素x第一次出现的位置s.count(x)计算元素x在序列s中出现的次数s.copy()复制序列s,创建一个新的序列。序列类型的操作遍历序列:
forxins:索引 foriinrange(len(s)):s为序列类型,x得到序列的元素i得到0~len(s)-1的整数,表示元素的索引序列类型的操作列表和元组的多级索引:如:s=[1,2,3,(5,6,7)]则len(s)为4,一共4个元素s[0]s[1]s[2]s[3]123(5,6,7)s
S[3][0]S[3][1]S[3][2]567s[3]
s[3]元素的类型是元组例:输入一个整数金额,输出汉字表示的大写金额。假设输入的金额数为正整数,且最大为12位数字。切片序列[起始索引值:结尾索引值]起始索引值1357911130123456-7-6-5-4-3-2-1结尾索引值已知这个列表:
s=[1,3,5,7,9,11,13]进行切片操作:
s[1:4]得到结果:
[3,5,7]例:编程设计一个周值班表。切片注意的问题省略索引值:省略结尾索引值,切片范围会包含最后一个元素
s[-n:]可获取序列s的最后n个元素。省略起始索引值,切片范围包含首个元素
s[0:5]等同于s[:5]两个索引值都省略,相当于复制整了个原列表
s[:]复制整个列表带步长的切片序列[起始索引值:结尾索引值:步长]已知这个列表:
s=[1,3,5,7,9,11,13]进行切片操作:
s[1:6:2]得到结果:
[3,7,11]步长为21357911130123456-7-6-5-4-3-2-1结尾索引值起始索引值默认步长为1,可省略步长为负数已知这个列表:s[1,3,5,7,9,11,13,15,17,19,21,23,25,27]进行切片操作:s[12:3:-3]得到结果:
[25,19,13]步长为-3012345678910111213-14-13-12-11-10-9-8-7-6-5-4-3-2-1结尾索引值起始索引值13579111315171921232527元素提取方向列表(list)类型创建列表1.使用列表的字面量来创建列表s1=[1,3,5,7,9]s2=[] s3=[[1,2,3],[4,5,6],[7,8,9]]x=3
y=4
s4=[x,y+1][3,5]s[0][1,2,3]s[0][1]2创建列表2.使用list()函数将其他数据类型的数据转换成一个列表语法格式:
x=list(<组合类型>)
用于生成序列。x=list(("Tom","Jerry"))x=list("apple")x=list(range(1,10,3))x=list()x=input().split()无参数生成空列表,同:x=[]
["Tom","Jerry"]
['a','p','p','l','e']
[1,4,7]
[]可以配合map函数修改列表内容1.元素赋值利用索引值选择特定的元素进行赋值操作,可以修改列表中某一个元素的值。s=[1,3,5,7,9,11,13]s[2]=10不可以对不存在的元素进行赋值。当元素的索引值超出其取值范围时,就会产生一个错误。s[7]=99
[1,3,10,7,9,11,13]切片内容修改列表内容2.切片赋值创建列表:
s=[1,3,5,7,9,11,13]修改列表:
s[1:-1]=[0]*10修改后列表:
[1,0,0,0,0,0,0,0,0,0,0,13]13579111301234560000000000替换内容替换1000000000013-7-6-5-4-3-2-1得到切片内容修改列表内容100000000001324681200400600813带步长的切片赋值s[1:-1:3]=[2,4,6,8]修改后列表:
[1,2,0,0,4,0,0,6,0,0,8,13]替换内容得到替换列表的操作添加元素列表.append(元素值)列表.extend(可迭代对象)列表.insert(索引值,元素值)删除元素del列表[索引值]或
del切片列表.remove(元素值)列表.pop(<索引值>)列表.clear()例:随机产生10个数,排序后输出列表.sort()例:评委评分程序,去掉最高分和最低分,求平均分。复制列表:列表.copy()135aa=[1,3,5]b=ac=[2,4,6]d=c.copy()246c246dbb[1]=9910d[1]=10效果等同:
d=c[:]列表的操作列表推导式,用于生产列表
[<值>for<项>in<可迭代对象>if<条件>]例:x=[i*2foriin[1,2,3,4]][2,4,6,8]x=[1/iforiinrange(1,5)ifi%2==0]
[0.5,0.25]列表推导式的优势例:扑克牌发牌程序创建元组直接使用元组的字面量来创建元组s1=() s2=(1,3,5,7,9)s3=1,3,5,7,9s4=(x,y+1)#注意:x和y变量已经赋值过。使用tuple()函数将其他数据类型的数据转换成一个元组s1=tuple() s2=tuple([1,3,5,7,9]) s3=tuple(range(1,10,2)) s4=tuple('Python程序设计') 注意与(78,)和(78)的区别无参数生成空元组,同:x=()元组是不可修改的s=[1,2,3]t=(0,s)print(t)#t[1]和s代表同一个列表t[1][0]=8s[2]=9print(t)123s0t89(0,[1,2,3])(0,[8,2,9])序列的封包和解包序列封包——把多个值赋值给一个变量时,Python会自动的把多个值封装成元组,称为序列封包。>>>s=1,3,5,7,9 >>>s(1,3,5,7,9)>>>type(s)<class'tuple'>序列的封包和解包序列解包——把一个序列(列表、元组、字符串等)直接赋给多个变量,此时会把序列中的各个元素依次赋值给每个变量,但是元素的个数需要和变量个数相同,这称为序列解包。s=('哪吒','M',3,100)name,sex,age,energy=sname,*other=sprint(*s)集合(set)类型s={"red","orange","yellow","green"}元素无序,不可以使用索引访问元素没有重复内容可变元素可以是各种不可变类型,可不同类型
(数字类型、字符串、元组等)元素不可以是列表、集合等创建集合直接使用集合的字面量来创建集合
s1={'red','green','blue','orange','yellow'} s2={1,7,3,2}s3={1,2,1,3,2,7}#s2和s3是创建的相同的集合使用set()函数将其他数据类型的数据转换成一个集合s4=set() s5=set([1,3,5,7,9]) s6=set('Python程序设计')
集合的运算1.关系运算。==!=>>=<<=子集、超集、真子集、真超集若s={1,2,3,4,5,6},t={1,3,5}则:t是s的子集(t<=s),s是t的超集(s>=t)若s={5,1,3},t={1,3,5}则:t和s相等(s==t为True)2.数学中的集合运算ABABABAB并集:A|B差集:A-B交集:A&B对称差:A^BA={1,2,3,4,5}B={4,5,6,7,8}{1,2,3,4,5,6,7,8}{4,5}{1,2,3}{1,2,3,6,7,8}集合的应用元素唯一性、实现快速去重函数或方法(集合s):
s.add() s.clear() s.copy()
s.pop() s.remove(x)例:随机产生20个互不相同的100以内自然数映射类型——字典(dict)d={'中国':13.9,'法国':0.7,'美国':3.3}元素无序,不可以使用索引访问元素是键值对:<键>:<值>内容可变元素的键不可以重复元素的键可以是各种不可变类型,可不同类型(数字类型、字符串、元组等)元素的值可以是任何类型,没有互不相同的要求字典使用举例:通讯录、棋盘状态创建字典直接使用字典的字面量来创建集合
s1={} s2={'中国':960,'美国':937,'日本':38}s3={'中国':960,'美国':930,'日本':38,'美国':937}#s2和s3是创建的相同的集合使用dict()函数将其他数据类型的数据转换成一个字典s1=dict()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理社区护理要点
- 护理评估单的临终关怀应用
- 护理安全患者参与策略
- 护理应用解剖学学习策略
- 护理教学比赛活动策划
- 护理科研课题申报的成果转化
- 2026年三甲医院护士招聘笔试常见试题及答案分析
- 基于物联网的智能家居与智能语音识别的结合研究
- 红光大街雨水泵站工程水土保持方案报告表
- 快消品行业市场部经理招聘面试要点
- 诗经伯兮课件
- 注塑部品质基础知识培训课件
- DBJT15-248-2022 建筑工程消防施工质量验收规范
- 浦东新区2024-2025学年七年级上学期期中考试数学试卷及答案(上海新教材沪教版)
- 英语基础语音知识课件
- 实习护士第三方协议书
- 《云南教育强省建设规划纲要(2024-2035年)》解读培训
- 评审专家聘任协议书
- 民宿委托经营管理协议合同书
- 2024-2025学年鲁教版(五四学制)(2024)初中英语六年级下册(全册)知识点归纳
- 2025全国市场监督管理法律知识竞赛测试题库(含答案解析)
评论
0/150
提交评论