设为首页 收藏本站
查看: 1027|回复: 0

[经验分享] Python学习笔记整理(五)Python中的列表.

[复制链接]
发表于 2018-8-4 07:40:12 | 显示全部楼层 |阅读模式
  列表和字段,这两种类型几乎是Python所有脚本的主要工作组件。他们都可以在原处进行修改,可以按需求增加或缩短,而且包含任何种类的对象或者被嵌套。
  一、列表
  列表的主要属性:
  *任意对象的有序集合
  从功能上看,列表就是收集其他对象的地方,可以把它看作组。列表所包含每一项都保持了从左到右的位置顺序(它们是序列)
  *通过偏移读取
  和字符串一样,可以通过列表对象的偏移对其进行索引,从而读取对象的某一部分内容。可以自行分片和合并之类的任务。
  *可变长度,异构以及任意嵌套
  列表可以实地增长或者缩短,并且可以包含任何类型的对象。支持任意的嵌套,可以创建列表的子列表的子列表。
  *属于可变序列的分类
  列表可以在原处修改。序列操作在列表与字符串中的工作方式相同。唯一的区别是:当合并和分片这样的操作当应用于列表时,
  返回新的列表而不是新的字符串。然而列表是可变的,因为它们支持字符串不支持的其他操作,例如删除和索引赋值操作。
  它们都是在原处修改列表。
  *对象引用数组
  列表包含了0或多个其他对象的引用。包含任何对象,对象可以是字典,也就是说可以嵌套字典。在Python解释器内部,列表就是C数组而不是链接结构。常见的具有代表性的列表操作。更多可以查阅Python的标准库或help(list)或dir(list)查看list方法的完整列表清单。
  操作        解释
  L1=[]        一个空的列表
  L2=[0,1,2,3]    四项:索引0到3
  L3=['abc',['def','ghi']]    嵌套的子列表
  L2        索引
  L2[j]    索引的索引
  L2[i:j]        分片
  len(L2)        求长度
  L1+l2        合并
  L2*        重复
  for x in L2    迭代
  3 in L2        成员
  L2.append(4)    方法:增加 增加单个对象
  L2.extend([5,6,7]) 方法:增加对多个对象
  L2.sort()     方法:排序
  L3.index('abc')     方法:通过对象查找对象索引(和索引相反的操作)
  L2.insert(I,X)     方法:插入(在I位置插入X)。
  insert() 插入的位置超过了列表的范围会插入得到列表最后一个位置。
  L2.reverse()      方法:翻转
  L2.remove('b')     方法:移除 方法的参数 填写的对象
  L2.pop(1)      方法:移除 方法的参数填写的是索引
  del L2[K]     裁剪:k为裁剪掉的索引
  del L2[i:j]     裁剪:
  L2=1         索引赋值
  L2[i:j]=[4,5,6]     分片赋值
  rang(4)         生成整数列表/元组
  xrange(1,4)
  L4=[x**2 for x in range(5)]    列表解析
  二、实际应用中的列表
  1、基本列表操作
  合并和重复,和字符串基本一致,不过结果是一个新的列表,而不是一个字符串。
  >>> len([1,2,3])
  3
  >>> [1,2,3]+[4,5,6]
  [1, 2, 3, 4, 5, 6]
  >>> ['diege',18]*3
  ['diege', 18, 'diege', 18, 'diege', 18]
  >>> 3 in [1,2,3]
  True
  >>> for x in [1,2,3]:print x,
  ...
  1 2 3
  注意“+”操作和字符串中的一样,然而值得重视的时"+"两边必须是相同类型的序列。不能将一个列表和一个字符串合并
  到一起,除非先把列表转换为字符串。
  >>> str([1,2]) + '34'
  '[1, 2]34'
  >>> [1,2]+list('34')
  [1, 2, '3', '4']
  2、索引,分片,矩阵
  对列表进行索引的结果就是你指定的偏移处的对象(不管是什么类型),而对列表进行分片时往往返回一个新的列表
  >>> L=['diege','lily','keylly']
  >>> L[1]
  'lily'
  >>> L[-1]
  'keylly'
  >>> L[1:]
  ['lily', 'keylly']
  >>> LL=[[1,2,3],[4,5,6],[7,8,9]]
  >>> LL[2]
  [7, 8, 9]
  >>> LL[1][2]
  6
  三、原处修改列表
  列表可变,支持实地改变列表对象的操作,以下操作都可以直接修改列表对象,而不会像字符串那样强迫你建立一个新的拷贝。因为python只处理对象引用,所以需要将原处修改一个对象与生成一个新的对象区分开来。
  1、索引和分片赋值
  赋值给一个特定的项(偏移)或整个片段(分片)来改变列表的内容。
  >>> L=['diege','lily','keylly']
  >>> L[1]='tom'
  >>> L
  ['diege', 'tom', 'keylly']
  >>> L[0:2]=['boo','july']
  >>> L
  ['boo', 'july', 'keylly']
  >>> L
  ['lily', 'kelly', 'x', [1, 2, 3]]
  >>> L[0:2]=['lily','kelly','fang']
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3]]
  分片赋值可以分成两步来理解。先删除,再插入。
  列表嵌套字典
  >>> L
  ['diege', {'tow': 789, 'one': 456}, 999]
  >>> L[1]
  {'tow': 789, 'one': 456}
  >>> L[1]['one']
  456
  2、列表方法调用
  1)、append() 追加一个元素
  注意:追加是追加一个对象,一个字符串,一个列表等
  >>> L
  ['boo', 'july', 'keylly']
  >>> L.append('jun')
  >>> L
  ['boo', 'july', 'keylly', 'jun']
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3], 'wang']
  >>> L.append(['wang','fei'])
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3], 'wang', ['wang', 'fei']]
  2)、extend() 在末端插入多个元素
  放一个字符串会分解成字符插入,所以插入的参数要放入列表中。
  >>> L.extend('test')
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3], 'wang', 't', 'e', 's', 't']
  >>> del L[5:]
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3]]
  >>> L.extend(['zhang','wang'])
  >>> L
  ['lily', 'kelly', 'fang', 'x', [1, 2, 3], 'zhang', 'wang']
  >>> L=[1,2]
  >>> L.extend([3,4,5])
  >>> L
  [1, 2, 3, 4, 5]
  3)、insert() 插入 要指定插入的位置和数据
  insert() 插入的位置超过了列表的范围会插入得到列表最后一个位置。
  >>> L.insert(1,5)
  >>> L
  [1, 5, 4]
  >>> L.insert(2,[6,7,9])
  >>> L
  [1, 5, [6, 7, 9], 4]
  >>> L=['diege','lily']
  >>> L.insert(1,'kelly')
  >>> L
  ['diege', 'kelly', 'lily']
  4)、pop()  删除一个元素
  pop()      方法:移除 方法的参数填写的是索引,默认最后一个
  >>> L
  [1, 2, 3, 4, 5]
  >>> L.pop()
  5
  >>> L
  [1, 2, 3, 4]
  可以指定要删除的索引
  >>> L.pop(2)
  3
  >>> L
  [1, 2, 4]
  5)、remove() 移除 必须指定对象名
  >>> L.remove(2)
  >>> L
  [1, 4]
  6)、sort() 排序
  >>> L.sort()
  >>> L
  ['boo', 'july', 'jun', 'keylly']
  7)、reverse() 序列反转
  >>> L.reverse()
  >>> L
  ['keylly', 'jun', 'july', 'boo']
  >>> L
  ['diege', 'kelly']
  >>> L.remove('diege')
  >>> L
  ['kelly']
  注意 不支持find()和replace()方法,这两个方法属于字符串
  3、其他常见的列表操作
  del  L[1]
  >>> L
  [1, 5, [6, 7, 9], 4]
  >>> del  L[1]
  >>> L
  [1, [6, 7, 9], 4]
  >>> del  L[1:]
  >>> L
  [1]
  >>> L=['diege',1,5]
  >>> L[1:]=[]
  >>> L
  ['diege']
  5个0列表的创建三种方法
  [0]*5
  >>>
  >>> [0 for i in range(5)]
  >>> L=[]
  >>> for i in range(5):
  ...  L.append(0

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-546165-1-1.html 上篇帖子: Python学习笔记整理(十一)python的while和for循环 下篇帖子: Python学习笔记整理(四)Python中的字符串..
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表