ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:24.89KB ,
资源ID:8504803      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8504803.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(03Python数据类型.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

03Python数据类型.docx

1、03Python数据类型/根标题=Python程序设计与应用实战/主标题=数据类型/作者=张勇/地址1=电子科技大学数学科学学院/地址2=/地址3=/标题缩减级别=11 数据类型 21.1 数据类型 21.1.1 列表(list)的定义 21.1.2 元组(tuple)的定义 21.2 序列 31.2.1 sequence 序列 31.2.2 元素的引用 31.2.3 其他引用方式 41.2.4 尾部元素引用 41.2.5 字符串是元组 41.3 列表(list) 41.3.1 列表的方法 61.3.2 列表当栈 71.3.3 列表当队列 71.3.4 列表推导式 81.3.5 列表嵌套 81

2、.4 元组(tuple) 91.5 字典(dict) 101.5.1 赋值 101.5.2 删除 111.5.3 字典的使用例子 111.5.4 字典的常用方法 111.5.5 示例 121.6 Python 序列应用 131.6.1 所有的标准类型操作符适用于序列 131.6.2 序列类型的操作符 131.6.3 序列常用的内建函数 141 数据类型1.1 数据类型基本数据类型:字符串,整数,浮点数,布尔型集合类型:列表(list), 元组(tuple), 字典(dictionary或hash)列表(list)的定义:aList = 23 或者 bList = 1,2,3print bLis

3、t1 List常用操作:append, del, + ,*, len(list)0 * 5列表对象支持的方法 append(x) count(x) :X在List中的个数 extend(L) index(x) insert(i,x) pop(x) remove(x) reverse() sort() 例子: list.append(x)#将元素x加入list列表 list.sort() 对列表list进行排序 元组(tuple)的定义:aTuple = (1, 3, 5)print aTuple元组可以用方括号括起下标做索引元组一旦创建就不能改变列表大部分操作同样适用于元组 1.2 序列1.2

4、.1 sequence 序列sequence(序列)是一组有顺序的元素的集合(严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素)序列可以包含一个或多个元素,也可以没有任何元素。我们之前所说的基本数据类型,都可以作为序列的元素。元素还可以是另一个序列,以及我们以后要介绍的其他对象。序列有两种:tuple(定值表; 也有翻译为元组) 和 list (表)s1 = (2, 1.3, love, 5.6, 9, 12, False) # s1是一个tuples2 = True, 5, smile # s2是一个listprint s1,type(s1)print s2,type(s

5、2)newpage s1 = (2, 1.3, love, 5.6, 9, 12, False) s102 type(s10) s12love type(s12) s135.6 type(s13)tuple和list的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。一个序列作为另一个序列的元素s3 = 1,3,4,5空序列s4 = 1.2.2 元素的引用s3 = 1,3,4,5序列元素的下标从0开始:print s10print s22print s312由于list的元素可变更,你可以对list的某个元素赋值:s21 = 3.0print s2如果你对

6、tuple做这样的操作,会得到错误提示。所以,可以看到,序列的引用通过s实现, int为下标1.2.3 其他引用方式范围引用: 基本样式下限:上限:步长print s1:5 # 从开始到下标4 (下标5的元素 不包括在内)print s12: # 从下标2到最后print s10:5:2 # 从下标0到下标4 (下标5不包括在内),每隔2取一个元素 (下标为0,2,4的元素)print s12:0:-1 # 从下标2到下标1从上面可以看到,在范围引用的时候,如果写明上限,那么这个上限本身不包括在内。1.2.4 尾部元素引用print s1-1 # 序列最后一个元素print s1-3 # 序列

7、倒数第三个元素同样,如果s10:-1, 那么最后一个元素不会被引用 (再一次,不包括上限元素本身)1.2.5 字符串是元组字符串是一种特殊的元素,因此可以执行元组的相关操作。str = abcdefprint str2:4总结tuple元素不可变,list元素可变序列的引用 s2, s1:8:2字符串是一种tuple1.3 列表(list)主要介绍了Python3的list列表用法, 这是Python3数据类型中非常常见的应用,通常来说Python中任何值都是一个对象,因此任何类型(int、str、list)都是一个类。而类就必然有它的方法或属性,我们要记下这么多类的所有方法显然是不可能的,对

8、此本文介绍两个小技巧:dir() :内置函数,用来查询一个类或者对象所有属性,比如 dir(list)。help() :内置函数,用来查询具体的说明文档,比如 help(int)。在上一篇的Python3的基本数据类型中,我们初步了解了list列表,也介绍了列表是Python 中使用最频繁的数据类型。本文将进一步深入学习列表的使用。列表时对象的有序集合。列表的内容可以修改,列表的长度可变。列表的定义: 其中多个列表项用逗号隔开,它们的类型可以相同,也可以不同,还可以是其列表。例如date=2011, 2, 9, 9, 54day=sun,mon,tue,wed,thi,fri,sattoday

9、=2011,2,9,weddata=date,day均是合法的列表。 使用时,通过索引号的形式应用,索引号从0开始,即0是第1项的索引号。例如date0的值是2011,day1得到“mon”,data13的到“wed”。下列程序:date=2011, 2, 9, 9, 54day=sun,mon,tue,wed,thi,fri,sattoday=2011,2,9,weddata=date,dayprint(date0)print(day1)print(data13)的运行结果为:2011monwed列表可以整体输出,如print(data)列表的其他运算见表1-2。表1-2列表的运算运算格式/

10、举例说明/结果L1=空列表L2= 2011, 2, 9, 19, 545项,整数列表,索引号0-4L3= sun,mon,tue,wed嵌套的列表L2i,L3ij索引,L21的值为2,L311的值为tueL2i:j分片,取i到j-1的项Len(L2)求列表的长度L1+L2合并L2*3重复,L2重复3次for x in L2循环,x取L2中的每个成员执行循环体19 in L219是否是L2的成员L2.append(4)增加4作为其成员,即增加一项L2.sort()排序,L2结果变为2, 9, 19, 54, 2011L2.index(9)得到9在列表中的索引号,结果为2L2.reverse()逆

11、序,L2的结果为2011, 54, 19, 9, 2del L2k删除索引号为k的项L2i:j=删除i到j-1的项L2i=1修改索引号为i的项的值L2i:j=4,5,6修改i到j-1的项的值,如果项数多,则自动插入L4=range(5,20,3)生成整数列表L4实际为5,8,11,14,171.3.1 列表的方法list.append(x)在列表的尾部添加一个项,等价于 alen(a): = x。list.extend(L)将给定的列表L接到当前列表后面,等价于 alen(a): = L。list.insert(i, x)在给定的位置 i 前插入项,例如:a.insert(0, x) 会在列表

12、的头部插入,而 a.insert(len(a), x) 则等价于 a.append(x)。list.remove(x)移除列表中第一个值为 x 的项,没有的话会产生一个错误。list.pop(i)删除列表给定位置的项,并返回它。如果没指定索引,a.pop()移除并返回列表最后一项。(方括号表示可选)list.clear()删除列表中的所有项,相当于 del a:。list.index(x)返回列表中第一个值为 x 的项的索引。如果没有匹配的项, 则产生一个错误。list.count(x)返回列表中 x 出现的次数。list.sort()就地完成列表排序。list.reverse()就地完成列表

13、项的翻转。list.copy()返回列表的一个浅拷贝,相当于a:。1.3.2 列表当栈List的方法使得其可以很方便地作为一个栈来使用。我们知道,栈的特点是最后进入的元素最先出来(即后入先出),用append()方法进行压栈,用不指定索引的pop()方法进行出栈。示例代码如下:stack = for x in range(1,6): stack.append(x) # 入栈 print(push, x, ) print(stack) print(Now stack is, stack) while len(stack)0: print(pop, stack.pop(), ) # 出栈 prin

14、t(stack)1.3.3 列表当队列列表还可以当作队列来使用,队列的特性是第一个加入的元素第一个取出来(即先入先出)。然而,把列表当队列使用效率并不高,因为从列表的尾部添加和弹出元素是很快的,而在列表的开头插入或弹出是比较慢的(因为所有元素都得移动一个位置)。要实现一个队列, 使用标准库的collections.deque, 它被设计成在两端添加和弹出都很快。示例代码如下:from collections import dequequeue = deque() # 创建空队列for x in range(1,6): queue.append(x) # 入队 print(push, x, )

15、print(list(queue) print(Now queue is, list(queue) while len(queue)0: print(pop, queue.popleft(), ) # 出队 print(list(queue)1.3.4 列表推导式列表推导式提供了从序列创建列表的简单途径。通常程序会对序列的每一个元素做些操作,并以其结果作为新列表的元素,或者根据指定的条件来创建子序列。列表推导式的结构是:在一个方括号里,首先是一个表达式,随后是一个 for 子句,然后是零个或更多的 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的

16、列表。示例代码如下:squares = x*2 for x in range(10) # 推导式print(squares)# 输出是0, 1, 4, 9, 16, 25, 36, 49, 64, 81pairs = (x, y) for x in 1,2,3 for y in 3,1,4 if x!=y # 推导式print(pairs)# 输出是(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)1.3.5 列表嵌套Python中并没有二维数组的概念,但我们可以通过列表嵌套达到同样的目的。mat = 1, 2, 3, 4, 5, 6,

17、 7, 8, 9 print(mat)print(type(mat)print(mat1)mat2=0,0,0print(mat)同样,我们可以使用推导式生成嵌套的列表:mat = 1,2,3, 4,5,6, 7,8,9new_mat = rowi for row in mat for i in 0,1,2 # 嵌套print(new_mat)# 输出1, 4, 7, 2, 5, 8, 3, 6, 9附:del语句del语句可以通过给定索引(而不是值)来删除列表中的项,它与返回一个值的pop()方法不同。del语句也可以移除列表中的切片,或者清除整个列表 :lst = 1,2,3,4,5,6,

18、7,8,9del lst2 # 删除指定索引项print(lst) del lst2:5 # 删除切片print(lst)del lst: # 删除整个列表print(lst)del也可以用于删除变量实体:del lst在删除变量实体之后引用 lst 的话会产生错误。1.4 元组(tuple)元组和列表十分类似,只不过元组和字符串一样是不可变的,即不能修改元组。元组通过圆括号中用逗号分割的项目定义。当一组数据,只使用,不修改时使用元组。元组的使用与列表相同,只是不能修改、删除、增加其元素。例如:# use of tuple# filename: tuple.pygarden=(Bird of

19、Paradise ,rose ,tulip, lotus,olive, Sunflower)print (Number of flowers in the garden is, len(garden)i=2;print(flower,i,is,gardeni-1)new_garden = (Phlox, Peach Blossom, garden)i=1;print(flower,i,is,gardeni-1)运行结果如下:C:Python31python tuple.pyNumber of flowers in the garden is 6flower 2 is roseflower 1

20、is Bird of Paradise元组的运算见表1-3表1-3元组的运算运算格式/举例说明/结果T1()空元组T2=(2011,)有一项的元组T3=(2011, 2, 9, 19, 54)5项,整数元组,索引号0-4T4= (sun,(mon,tue,wed)嵌套的元组T3i,T4ij索引,T31的值为2,T411的值为tueT3i:j分片,取i到j-1的项Len(T3)求元组的长度T3+T4合并T3*3重复,T3重复3次for x in T3循环,x取T3中的每个成员执行循环体19 in T319是否是L2的成员注意:元组与列表的最大不同:一是定义时用一对圆括号,二是内容不能修改。1.5

21、 字典(dict)字典是python中唯一内置映射数据类型。通过指定的键从字典访问值,即 key,value模式字典为容器,内建len函数可以将字典当作单一参数使用,返回字典对象中项目(键值对)的数目。 字典是无序的对象的集合,通过键进行操作。类似于通讯录,通过姓名来查找电话、地址等信息,则姓名就是键。一定要没有同名的人。字典的定义为:=键1:值2,键2:值2,键3:值3,其中,键1,键2,键3不相同,值可以是任何类型的数据,可以是列表或元组。注意,字典定义中使用的是大括号,项通过逗号隔开,每个项有键部分和值部分,键和值之间用冒号隔开。只可使用简单的对象作为键,而且不能改变,但可以用不可变或可

22、变的对象作为字典的值。在Python2.2以及后面版本,D中的k运算符检测是否对象k是字典D中的键。如果是返回True如果不是返回False。相似的,字典D中的值与相关的键k被索引表示为:Dk。索引字典没有的键会引起意外。例如:d = x:42, y:3.14, z:7 dx # 42dz # 7da # raises exception1.5.1 赋值Dnewkey= value 该操作加载键和值到字典里新的项目中。1.5.2 删除语法:del Dk中的del语句,删除字典中拥有键k的项目。如果k不是字典D中的键,del Dk就会引起意外。1.5.3 字典的使用例子a = a: aa, b:

23、 bbac=cca.has_key(a) #判断字典中是否存在此值aa=uuaaa=3del aa #删除键值alen(a)示例: d=d:3,4,1:7,ab:ab,cd,ef dd3, 4 d17 dabab, cd, ef print(d)1: 7, d: 3, 4, ab: ab, cd, ef del d1; print(d)d: 3, 4, ab: ab, cd, ef1.5.4 字典的常用方法has_key(x)keys() values() items()clear() copy() update(x) get(x,y)1.5.5 示例例如:# use of dictionar

24、ies# filename: dict.pyaddress1 = zhang : larrywall.org, wang : wangwall.org, lily : lilyruby-lang.org, sam : sam print (mail of zhang,address1zhang)address2 = zhang : larrywall.org,shaanxi, wang : wangwall.org,beijing, lily : lilyruby-lang.org,shanghai, sam : sam,hubei print (mail of zhang,address2l

25、ily0)print (province of zhang,address2lily0)运行结果如下:C:Python31python dict.pymail of zhang larrywall.orgmail of zhang lilyruby-lang.orgprovince of zhang lilyruby-lang.org字典的操作见表1-4:表1-4字典的运算运算格式/举例说明/结果d1=空字典d2=class:jianhuan,year:2011有两项的字典d3=xjtu:class:huagong,year:2011字典的嵌套d2class, d3xjtuclass按键使用字

26、典d2.keys()获得键的列表d2.values()获得值的列表len(d2)求字典的长度d2year=2020添加或改变字典的值del d2year删除键1.6 Python 序列应用序列:成员有序排列,并且可以通过下标漂移量访问一个(直接指定索引)或者几个成员(切片操作)。包括字符串(普通字符串和unicode字符串)、列表和元组。其索引第一个元素从零向后递增(正索引),也可以从最后一个元素的-1索引向前递减(负索引)。1.6.1 所有的标准类型操作符适用于序列(值比较操作符,对象身份比较,逻辑操作符)。1.6.2 序列类型的操作符(1)成员关系操作符(in, not in)判断一个元素

27、是否属于一个序列,返回值为True/False。(2)连接操作符(+)将一个序列与另一个相同类型的序列做连接。这个方法并不是最快最有效的,因为python要为每一个参加连接操作的字符串分配新的内存,包括新产生的字符串。对于字符串,推荐将子字符串放到一个列表或者可迭代对象中,调用join方法连接,节约内存。对于列表,推荐使用列表对象的extend()方法。示例: t1=ab,cd,ef t2=3,4,5 t1.extend(t2) t1ab, cd, ef, 3, 4, 5()重复操作符(*)一个序列的多份拷贝,返回一个包含多份原对象拷贝的新对象。sequence*copies_int,注意copies_int必须为整型,不能为长整型。()切片操作符(,:)访问某一个数据元素:sequenceindex。(len()函数可获得序列的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1