2015/9/1 Python基础(6):列表
列表和字符串类型很相似,是同样的序列式数据类型。
但是字符串只能由字符组成,列表可以保留任意数目的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', '', 'b', 'c']
>>> aList[0] = 1.2
>>> print aList
[1.2, '', '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()。
列表特殊特性
用列表构建其他数据结构
用列表容器和可变的特性可以轻松的构造其他数据结构,如堆栈和队列。
具体实现过程不在博文里赘述了。
2015/9/1 Python基础(6):列表的更多相关文章
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础之列表list元组tuple
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...
- python基础数据类型--列表(list)
python基础数据类型--列表(list) 列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增.删.改.查等操作 一列表的增.删.改.查 1增: 1.1增加到最后 append ...
- Day2 - Python基础2 列表、字典、集合
Python之路,Day2 - Python基础2 本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一, ...
- python基础4 列表和元组
一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...
- python基础之列表、字典、元祖等 (二)
一.作用域 if 1==1: name = 'weibinf' print name 下面的结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 二.三元运算 result = 值1 ...
- python基础之列表讲解
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 如下图所示,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可.(接下来的演 ...
- Python基础入门-列表解析式
今天我们使用Python中的列表解析式来实现一些简单功能.好了关于列表解析式是什么?我的理解是它可以根据已有列表,高效创建新列表的方式.列表解析是Python迭代机制的一种应用,它常用于实现创建新的列 ...
- Python基础_列表 list
列表是Python的一种基础数据类型,可以进行的操作包括索引,切片,加,乘,检查成员 列表定义: list(列表.数组) eg:stus=['lisi','jion','peter'] #下标:即角标 ...
随机推荐
- Android 开发错误集锦
1. eclipse的Device中不显示手机 在eclipse中连接不上手机,出现adb server didn't ACK fail to start daemon 错误. 出现这种原因是因为a ...
- pthon_flask小汇总
一.Jinja2中的关键字 1.include关键字 用include可以导入另外一个模板到当前模板中 <pre> {% include 'header.html' %} Body {% ...
- C#控件DropDownList下拉列表默认打开
c#中的控件DropDownList要实现默打开确实不容易,之前也是想过页面上的点击之后就打开了,那直接模拟点击不就行了,试过后大失所望,根本没有效果. 于是网上找到了一个例子能实现IE浏览器下的打开 ...
- 201621044079 韩烨 week11-作业11-多线程
作业11-多线程 参考资料 多线程参考文件 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序 ...
- Gitkraken系列-Gitkraken使用操作
一个优秀的团队合作离不开git,一个优秀的程序员也离不开git.gitkraken是我在进行软工实践这门课接触到的git的UI界面的工具,它给我留下的印象就是非常好用和方便 怎么个方便法呢? 方便的安 ...
- Java模块化开发
包配置, 静态资源, 视图解析器, 数据库,
- Java内存分配及垃圾回收机制
Java内存区域 1.内存区域 jvm运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 方法区 Java堆 大图 2.概念解释 程序计数器 线程私有的一块很小的内存空间,它是当前线程所执行 ...
- sql语句中的insert 和 insert into 的区别?into有什么用?
insert into tableName values(........) insert tableName (字段名1,字段名2,...)values(......)看语句结构就知道区别了 .in ...
- overflow:scroll 在ios 滚动卡顿
使用 -webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果. 值 auto 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止. touch 使用具有回 ...
- bzoj3473字符串&bzoj3277串
题意:给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串.注意本质相同的子串多次出现算多次,如1 1 aaa这组数据答案为6,贡献1WA.代码里有些部分是为了 ...