资源简介 (共41张PPT)第3章 算法的程序实现浙教版 信息技术(高中)必修1 数据与计算3.3 python 基本数据结构Python基本数据结构字符串string:是由单字符构成的一个有序串。列表list:类似于数组的一组有序数据,组中每个数据成员可以是数字、字符串、布尔,还可以是另一个列表或其他序列类型字典dict:字典是一种映射集合类型,用一个关键字对应一个值,是一个二元组集合。映射集合中的关键字不能有重复。元组tuple:与列表类似,但不可就地改变组内元素的值。集合set:一组无序的数据,且组内没有重复的数据。Python基本数据结构——(1)字符串String字符串的概念:用单引号(’)、双引号(’’)或三引号(’’’)括起来的一个字符序列,起始和末尾的引号必须要一致。字符串的特点:①字符串是不可变数据;②通过索引来访问字符串中的字符。索引表示字符在字符串的位置,第一个元素的索引号是0,第二个元素的索引号是1,以此类推;③输出字符串时可以在字符串中加入转义符号“\”,比如在字符串前加“r”可以取消“\”的转义,使其成为普通字符串输出。\a 响铃(BEL)\b 退格(BS)\f 换页(FF)\n 换行(LF)\r 回车(CR)\t 水平制表(TAB位置)\v 垂直制表\\ 反斜线字符''\'\' 单引号字符\" 双引号字符\0 空字符(NULL)字符串有三种基本运算“x+y”:连接两个字符串x与y,如"12"+"34"='1234'“x*n”或“n*x”:复制n次字符串x,如 3*"12"='121212'“x in s”:判断子字符串,如"1" in "21"=True字符串-基本运算可以通过索引访问字符串中特定位置的字符。假设:字符串“ABCDEFGHIJ”“G”正向索引是几?反向索引是几?6-4字符串-索引Python使用一种“切片”方法来访问字符串中的子串切片时用两个下标索引值作为首、尾位置,中间用冒号分隔,选取首尾间的子字符串切片时下标索引值对应字符串的位置如下图所示。如b[2:5]='ICE'S L I C E O F S P A M[开始:结尾]索引值指的是刀在哪里“切下”102[:5-1-2:]序列的开始用“[:” ,结尾用“:]”11字符串-切片设字符串长度为n,则切片索引的0与正整数值:0,1,2,…,n切片索引的负整数值:-n,…,-2,-1字符串-切片还可以用三索引值访问子字符串:<字符串>[<首址>:<尾址>:<步长>]b='0123456789'右边是三索引访问子串的示例由此可见,Python的子字符串访问方式非常丰富,体现了Python对序列数据处理的强大功能。>>> b[1:10]'123456789'>>> b[1:10:2]'13579'>>> b[::3]'0369'>>> b[3::2]'3579'>>> b[:8:2]'0246'字符串-切片宝典P31第7题已知s=”人生苦短,我用Python”,则s[1]=___________________________,s[2:4]=___________________________,s[:4]=___________________________,s[5:]=___________________________,s[-6:]=___________________________,s[::3]=___________________________,“生”“苦短”“人生苦短”“我用Python”“Python”“人短用tn”Python基本数据结构——(2)列表Python序列类型2:列表(List)列表是可变数据。一个列表被创建后,可以直接修改列表中的元素值。列表的大小是可变的,可以根据需要增加或缩小。列表中包含的对象可以是数字、字符串、甚至列表本身(即列表嵌套)等,同一列表中的各个元素没有任何限制列表用一对方括号[]作为分界符,数据与数据之间用逗号分隔全部是整数类型。全部是字符串,但是是分离的字符串。该列表中的元素包括整数、字符串,还嵌套另一个列表。列表-赋值(1)列表的赋值基本格式:列表名=[ 数据,数据,…… ]合并运算:L1+L2(合并运算必须是两个列表)[1,2,3]+[5,6] 的计算结果为[1,2,3,5,6]而[1,2,3]+5是一个错误的语句,类型不匹配重复运算:L*n或n*L如果L=[1,2,3],则3*L的计算结果为[1,2,3,1,2,3,1,2,3]n=10;L=n*[0],则L的值为[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]包含运算:in 或 not in如果L=[1,2,[3]],则 1 in L 或[3] in L的值为True,而3 in L的值为False列表-基本运算> > > info= ["BH60018", "苹果", 50]> > > info [2]50> > >info [0: 2]['BH60018', '苹果']思考:还有其他的方法吗?列表-索引列表的索引基本格式:列表名[索引号]info[-1]info[-3,-1]练一练注:空格在python中也占一位索引号。列表-切片字符串、列表的切片操作 格式:[start:end:step]功能:返回从索引位置start到索引位置end且以step为步数的子序列。(不包含索引位置end的元素)(步长没写时,默认步长为1。步长为正,说明正向索引;步长为负,则为反向索引)思考:如何得到“《唐人街探案3》”,“《你好,李焕英》”这两部电影?思考:如何反向索引输出 “《唐人街探案3》”,“《你好,李焕英》”两部电影?-6-5ABCD-4√列表-切片添加列表元素(1)append方法:把一个元素加到列表的最后。基本格式:列表名.append(数据)添加元素L=[1,2,3,4,5]分别执行下列命令后L.添加列表元素(2)extend方法:把另一个序列对象合并到列表的末尾基本格式:列表名.extend( [ 数据 , 数据 ,数据 ] )添加元素语句错误:必须添加序列对象序列对象都是一系列的数据组成的集合,主要包括:字符串(str)、列表(list)、字典(dict)、元组(tuple)添加列表元素(3)insert方法:把一个元素加到列表的任意位置。基本格式:列表名.insert( 索引号,数据 )添加元素L.insert(i,x) 在列表的i处插入一个值为x的元素删除列表元素(1)用del命令(delete,删除的缩写)从列表中删除元素。基本格式:del 列表名[ 索引号 ]删除列表元素(2)用pop()方法移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。基本格式:列表名.pop(索引号)删除列表元素(3)用remove()方法移除列表中某个值的第一个匹配项。基本格式:列表名.remove (数据)更新或添加列表元素(1)列表是可变数据,可以直接对列表元素进行修改。基本格式:列表名[索引号]=数据搜索元素L.index(x) 返回列表中第1个值为x的索引值基本格式:列表名.index(指定检索的数据,开始索引,结束索引)L=[1,2,3,4,1,2,3,1,2,1]返回第1个2的位置返回从索引值5开始的第1个2的位置返回从索引值在6-7范围内的第1个2的位置搜索列表元素反转与排序列表名.reverse()列表反转列表名.sort()列表排序反转列表、列表排序Python基本数据结构——(3)字典Dictionary日常生活中到处都存在映射,在数据处理中作用非常大学号:姓名学号:(姓名,身高,体重,...)书号:(书名,价格,出版社,...)民族编号:民族名称字典(dictionary)是python中唯一一种映射类型,字典中的键值对是无序的。(3)字典图3.2.5 字典结构示例>>>dic={”铅笔”:71,”钢笔”:59,”橡皮”:98,”尺子”:92}>>>print(dic[“铅笔”])71这部分程序中第一行语句创建了一个名为dic的字典,共有4个元素,第1个元素包含了键“铅笔"和值71,第2个元素包含了键"钢笔"和值59······第二行输出字典dic中键”铅笔”对应的值。Python基本数据结构——(3)字典Dictionary字典的概念:字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型,是python中唯一一种映射类型,采用“键:值”对形式存储数据,每个“键:值”对之间用逗号分割,整个字典包括在"{ }"中。示例:dict={“name”:”百度”,”likes”:123”,”url”:www.”}字典的特点:①字典元素的“键”必须是唯一的,用字符串或数值来表示;“值”则可以是任意类型的数据。②列表是有序的对象集合;字典是无序的对象集合,“in”运算符的速度比列表要快得多,但是不能使用索引来获取字典元素,只能使用元素的“键”来访问对应的“值”。key in D 包含运算只针对所有键,如D={'a':1,'b':2,'c':3}'a' in D -> True1 in D -> False字典-基本运算同一字典内部,不同二元组的“键”的数据类型可以不同,值也类似。字典元素的“键”必须是唯一的,用字符串或数值来表示;“值”则可以是任意类型的数据。创建字典一步创建分步创建字典项的添加与修改:命令形式:<字典名>[key]=value这个命令有双重含义:1)原字典中无该key项目时,则添加该项目2)原字典中有该key项目时,则用新项内容覆盖旧项内容,即修改D={'quantity':4,'food':'Spam', 'color':'pink'}执行:D['color']='red'后, D['color'] -> 'red'再执行D['weight']=500后, D['weight'] -> '500'添加、修改字典项字典项的批量更新:命令形式:字典名1.update(字典名2)update(d1)将字典d1添加到原字典中,注意不能有重复的key,如有重复key,则新value覆盖旧value添加、修改字典项字典项的删除:(1)命令形式:del <字典名>[key]这个命令是删除一个“键值对” :字典键值对只剩2项了删除字典项目(2)命令形式:字典名.pop(key) 返回key对应的值,并删除该二元组项目(3)命令形式:字典名.popitem() 返回并删除字典中的最后一个键值对字典项的访问:1、访问字典项(类似列表的索引,下标采用key值):命令形式:<字典名>[key] ->返回字典中与该key值对应的value值2、字典名.items() 以列表返回可遍历的键值对(用元组表示)D={'quantity': 4, 'food': 'Spam', 'color': 'pink'}D.items()的返回值是一个列表,列表中嵌套3个元组(以下是运行结果):3、字典名.keys() 返回字典所有的键4、字典名.values() 返回字典所有的值访问字典项列表是有序的对象集合:字典是无序的对象集合二者相同点:都属于可变对象的属性,都能够原位改变二者的不同点:字典中的元素是通过键key来存取的(因此不能分片),而列表通过索引存取(可分片)字典用"{ }"标识,字典由索引(key)和它对应的值value组成。 key:value列表&字典《精品同步AB练》P99 第12题dic_book[“《飘》”]dic_book[“《活着》”]=50dic_book[“《小王子》”]=55del dic_book[“《巴黎圣母院》”]或者 dic_book.pop(“《巴黎圣母院》”)《精品同步AB练》P99 第13题[100,10]《精品同步AB练》P99 第14题chinese_zodiac[“牛”]=“丑”chinese_zodiac[“龙”]=“辰”del chinese_zodiac[“猫”] 或者 chinese_zodiac.pop(“猫”)chinese_zodiac[“鼠”]=“子”《宝典》P31ACBDDACCCC 展开更多...... 收起↑ 资源预览