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

[经验分享] 2015/9/1 Python基础(6):列表

[复制链接]

尚未签到

发表于 2015-11-30 07:40:59 | 显示全部楼层 |阅读模式
  列表和字符串类型很相似,是同样的序列式数据类型。
但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器。
Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种。
列表可以执行pop,empt,sort,reverse等操作,可以添加或减少元素。可以和其他的列表结合或者把一个列表分成几个,可以对单独的元素执行insert,update或者remove操作。
创建列表是用[]来定义的,也可以用工厂方法创建



>>> aList = [12,'abc',1.23,['list','in']]
>>> anotherList = [None, 'something']
>>> print aList
[12, 'abc', 1.23, ['list', 'in']]
>>> print anotherList
[None, 'something']
>>> aList = []
>>> print aList
[]
>>> list('Python')
['P', 'y', 't', 'h', 'o', 'n']
  
  访问列表的值用索引或者切片的方法。这里不赘述。
更新列表
可以像C一样,指定一个索引或者索引范围来更新元素。或者使用append()方法来追加元素到列表中去



>>> aList = list('a1bc')
>>> print aList
['a', '1', 'b', 'c']
>>> aList[0] = 1.2
>>> print aList
[1.2, '1', 'b', 'c']
>>> aList[1:2] = ['x',3]
>>> print aList
[1.2, 'x', 3, 'b', 'c']
>>> aList.append(4.56)
>>> print aList
[1.2, 'x', 3, 'b', 'c', 4.56]
  
  删除列表中的元素或者列表(本身)
要删除元素的索引可以使用del语句,否则使用remove()方法



>>> aList
[123, 'abc', 'float replacer', ['inner', 'list'], (7-9j)]
>>> del aList[1]
>>> aList
[123, 'float replacer', ['inner', 'list'], (7-9j)]
>>> aList.remove(123)
>>> aList
['float replacer', ['inner', 'list'], (7-9j)]
  
  还可以用pop()方法来删除并从列表中返回一个特定对象。
一般来说不需要去删除一个对象列表,如果想明确地删除一整个列表可以用del语句:del aList
  Python没有专门用于列表类型的操作符,但是有属于自己的方法。列表有列表解析,是结合了列表的方括弧和for循环。以后会再专门学到列表解析。届时写一个列表解析的内容,这里只写一个简单的例子:



>>> [ i * 2 for i in [8, -2, 5] ]
[16, -4, 10]
>>> [ i for i in range(8) if i % 2 == 0 ]
[0, 2, 4, 6]
  内建函数
  一些序列类型的函数在列表里非常有用如:
max()、min()、sorted()、reversed()、enumerate()、zip()还有sum()
列表类型内建函数 只有range()函数
列表类型的内建函数
列表有自己的方法,在之后学习。可以用dir()方法来得到一个列表对象的所有方法和属性。



>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
方法作用
list.append(obj)向列表中添加一个对象obj
list.count(obj)返回一个对象obj 在列表中出现的次数
list.extend(seq)把序列seq 的内容添加到列表中
list.index(obj, i=0,j=len(list))返回list[k] == obj 的k 值,并且k 的范围在 i<=k<j;否则引发ValueError 异常.
list.insert(index, obj) 在索引量为index 的位置插入对象obj.
list.pop(index=-1)删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj)从列表中删除对象obj
list.reverse() 原地翻转列表
list.sort(func=None,key=None,reverse=False) 以指定的方式排序列表中的成员,如果func 和key 参数指定,则按照指定的方式比较各个元素,如果reverse 标志被置为True,则列表以反序排列.
  
  核心笔记:
可以改变对象值的可变对象的方法是没有返回值的!
Python 初学者经常会陷入一个误区:调用一个方法就返回一个值.最明显的例子就是
sort():



>>> music_media.sort()# 没有输出?
>>>
  
  在使用可变对象的方法如sort(),extend()和reverse()的时候要注意,这些操作会在列表
中原地执行操作,也就是说现有的列表内容会被改变,但是没有返回值!是的,与之相反,字符串
方法确实有返回值:



>>> 'leanna, silly girl!'.upper()
'LEANNA, SILLY GIRL!'
  
  温习一下,字符串是不可变的 -- 不可变对象的方法是不能改变它们的值的,所以它们必须
返回一个新的对象.
如果用列表一定要返回一个对象,可以使用reversed()和sorted()。
  列表特殊特性
用列表构建其他数据结构
用列表容器和可变的特性可以轻松的构造其他数据结构,如堆栈和队列。
具体实现过程不在博文里赘述了。

运维网声明 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.yunweiku.com/thread-145084-1-1.html 上篇帖子: python做一个http接口测试框架 下篇帖子: 02 Python 起步
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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