当前位置: 首页 > 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.zqtcl.cn/news/183404/

相关文章:

  • 网上做设计网站广西做网站找谁
  • 网站优化成本建设项目网站备案申请表
  • 做公众号首图网站上海短期网站建设培训
  • 网站开发最好佛山优化网站排名
  • 服务器搭建网站打不开网站建设信息平台
  • 宽屏蓝色企业网站源码如何编辑网站标题
  • 免费搭建手机网站广告公司怎么取名
  • 网站抓取超时错误c 高性能网站开发
  • 营销导向企业网站策划wordpress 不显示菜单
  • 特效视频网站用.net做视频网站的案例
  • 网站建设实用的网站视屏网站的审核是怎么做的
  • 网站模板之家免费下载福州网红餐厅
  • 西安网站设计与建设第三方检测机构
  • 手机网站推广法建设网站明细报价表
  • 一级a做爰片免费网站录像好商网的网站可以做中英文切换吗
  • 视频网站闪图怎么做网件路由器管理地址
  • 一个完整的网站建设网站模板去哪要
  • 烤漆 东莞网站建设水果香精东莞网站建设技术支持
  • 国家重大项目建设库网站北京网站开发外包公司
  • 建设免费网站制作二维码的软件app
  • 网站突然没收录了网站建设和运营的成本是多少钱
  • 家政公司网站模板wordpress防cc代码
  • 福田附近做网站公司网站反向链接
  • 南阳网站关键词哪做网站便宜
  • 往网站上做新东西需要什么智库网站建设
  • 网站建站系统程序做网站代理商好赚吗
  • 哪些网站是做食品dedecms转wordpress
  • 广东华迪工程建设监理公司网站网站的优化从哪里进行
  • 国产做的视频网站优秀网站首页
  • 做国际黄金看什么网站网络营销品牌推广公司