当前位置: 首页 > news >正文

公司做免费网站动漫制作专业主修课程

公司做免费网站,动漫制作专业主修课程,在线图片编辑器软件,ui交互设计软件前言数组类型是各种编程语言中基本的数组结构了#xff0c;本文来盘点下Python中各种“数组”类型的实现。listtuplearray.arraystrbytesbytearray其实把以上类型都说成是数组是不准确的。这里把数组当作一个广义的概念#xff0c;即把列表、序列、数组都当作array-like数据类…前言数组类型是各种编程语言中基本的数组结构了本文来盘点下Python中各种“数组”类型的实现。listtuplearray.arraystrbytesbytearray其实把以上类型都说成是数组是不准确的。这里把数组当作一个广义的概念即把列表、序列、数组都当作array-like数据类型来理解。注意本文所有代码都是在Python3.7中跑的^_^0x00 可变的动态列表listlist应该是Python最常用到的数组类型了。它的特点是可变的、能动态扩容可存储Python中的一切对象使用时不用指定存储的元素的类型。使用非常简单 0x01 不可变的tupletuple的操作与list类似。它的特点是不可变不能扩容可存储Python中的一切对象使用时不用指定存储的元素的类型。 t one,two,3t (one, two, 3)t.append(4) AttributeError: tuple object has no attribute appenddel t[0] TypeError: tuple object doesnt support item deletiontuple可以使用运算符这个运算将创建一个新的tuple对象用于存储数据。 t(1,) (one, two, 3, 1)tcopy t(1,)tcopy (one, two, 3, 1)id(tcopy) 4604415336id(t) 4605245696可以看出tuple执行运算符之后两个对象的地址是不一样0x02 array.array如果在Python中要用到其它语言中类似“数组”的数据结构就需要用到array模块了。它的特点是可变的、存储相同类型的数值不能存储对象。因为array在使用的时候要指定元素数据类型因此它比list和tuple都有比较高效空间性能。# 使用时指定元素数据类型为floatarr array.array(f, (1.0, 1.5, 2.0, 2.5))arr array(f, [1.0, 1.5, 2.0, 2.5]) # 修改一个元素arr[1]12.45arr array(f, [1.0, 12.449999809265137, 2.0, 2.5]) # 删除一个元素del arr[2]arr array(f, [1.0, 12.449999809265137, 2.5]) # 增加一个元素arr.append(4.89)arr array(f, [1.0, 12.449999809265137, 2.5, 4.889999866485596]) # 如果将一个字符串类型数据存储到一个浮点数的数组将会报错arr[0]hello TypeError: must be real number, not strarray中元素的数据类型可以参考下表0x03 字符串序列strPython3中使用str对象来表示一个文本字符序列(看这跟Java中的字符串String是多么相似呢)。它的特点不可变的Unicode字符序列。在str中它的每一个元素都是字符串对象。 s 123abcs 123abcs[0] 1s[2] 3 # 字符串是不可变的序列不能删除其中的元素del s[1] TypeError: str object doesnt support item deletion # 要对字符串进行操作可以转化成list sn list(s)sn [1, 2, 3, a, b, c]sn.append(9)sn [1, 2, 3, a, b, c, 9] # 字符串中的元素也是字符串对象type(s[2]) class strtype(s) class strstr对象也可以执行操作它也会生成一个新对象用于存储。 s2 s33s2 123abc33id(s2) 4605193648id(s) 45526404160x04 bytesbytes对象用于存储字节序列它的特点是不可变存储可存储0-256的数值。 b bytes([0,2,4,8])b[2] 4b bx00x02x04x08b[0]33 TypeError: bytes object does not support item assignmentdel b[0] TypeError: bytes object doesnt support item deletion 0x05 bytearraybytearray对象与bytes类似用于存储字节序列。它的特点是可变的能动态扩容的字节数组。 ba bytearray((1,3,5,7,9))ba bytearray(bx01x03x05x07t)ba[1] 3 # 删除一个元素del ba[1]ba bytearray(bx01x05x07t)ba[0]2ba[0] 2 # 添加一个元素ba.append(6) # 只能添加字节ba.append(s) TypeError: str object cannot be interpreted as an integerba bytearray(bx02x05x07tx06) # 字节的范围是0-256ba[2]288 ValueError: byte must be in range(0, 256)bytearray可以转化成bytes对象但效率不是很高。# bytearray转成bytes将生成一个新对象bn bytes(ba)id(bn) 4604114344id(ba) 45524735440x06 各个类型相互转化tuple-list tuple(l) (a, b, c)list-tuple t (a, b, c)list(t) [a, b, c]str-list l list(abc)l [a, b, c]list-str l [a, b, c].join(l) abcstr-bytes s 123bytes(s) TypeError: string argument without an encodingbytes(s,encodingutf-8) b123 # 或者使用str的encode()方法s.encode() b123bytes-str b b124b b124type(b) class bytesstr(b,encodingutf-8) 124 # 或使用bytes的decode()b.decode() 1240x07 总结这些数据类型都是Python自带的在实际开发中应该根据具体需求选择合适的数据类型。例如当要存储的元素类型是多种多样的那么就应该使用list或者tuple。而array.array相对来说拥有较好的空间性能但它只能存储单一类型。我相信在很多业务场景中list或tuple是可以满足需求的只是其它数据结构也要有所了解在我们做一些基础组件时会考虑数据结构的性能或者阅读他人的代码时能做到心中有数。
http://www.pierceye.com/news/183404/

相关文章:

  • 有关网站开发的论文网站建设哪公司
  • wordpress网站500导航 网站 分析
  • 软件网站开发市场前景试论述网上商城的推广技巧
  • 海洋生态文明建设的网站名廊坊网站建设电话
  • 做外贸在哪个网站比较好视频网站搭建源码
  • 网站代码优化视频教程动画制作专业大学排名
  • 安阳网站推广优化网站导航条背景图片
  • 静态网站需要数据库吗广州近期流行的传染病
  • 如何做国外的网站页面设计感想
  • 征婚网站认识的男人做定投保wordpress 中文 cms
  • 淄博百度网站建设上虞网站建设哪家好
  • 网站菜单导航怎么做的网站没有备案怎么做支付
  • wordpress主题小程序如何做优化排名
  • 中企动力做网站费用多个域名 指向同一个网站
  • 怎么搭建小程序平台网站营销优化
  • 建设网站员工招聘策划方案软件开发的八个步骤
  • 怎样做cms电影网站赚钱网络营销需要学什么
  • wordpress快速仿站视频教程没有备案的网站会怎么样
  • 美团先做网站还是app惠州惠阳网站建设
  • 可以更改上传到网站的文件内容吗信用 网站 建设方案
  • 获奖设计网站公司制作网站价格表
  • 做单页免费模板网站我是做推广的怎么找客户
  • 企业网站建设的缺点网络营销最基本的应用方式是什么
  • 做cpa推广用哪种网站好上海h5网站开发
  • 怎样做免费网站推广怎么申请二级域名
  • 站长之家源码之家虚拟空间官网
  • 网站建设推荐书籍装修公司装修房子
  • 上海专业微信网站开发公司怎么做seo
  • 上海市质量工程建设管理协会网站网站后台源码
  • 淄博机关建设网站免费发布企业信息平台