Python基础笔记系列三:list列表
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!
python中的list列表是一种序列型数据类型,一有序数据集合用逗号间隔用方括号括起来,和字符串一样可以通过索引index和切片来访问某个元素或子列表。
元组相当于一个只读的列表,它的元素不可修改。
字典是一种键值对。
- list列表
可以类比于其它语言(如,C语言)的数组,其起始下标为也为0。
1.列表的索引访问
1)通过list_name[index]来访问,每个列表的起始下标为0。
例子:demolist = [1,2,3,4] #列表的定义
print type(demolist) #打印类型
print demolist[0] #输出第一个元素
print demolist[1] #输出第二个元素输出:
<type 'list'>
1
22)可以通过del list_name[index]来删除列表的下标是index的数据。
例子:demolist = [1,2,3,4] #列表的定义
del demolist[2] #删除第三个元素
print demolist #输出整个列表输出:
[1, 2, 4]
2.列表的切片访问
1)想访问列表里一段连续的元素(或规则间隔的元素)可以指定列表的起止位置和终止位置、间隔的步长(可省,默认为1)。语法格式list_name(start:end[:step])表示访问下标为start至end-1的元素,step可省略,可以简记为前闭后开。
例子:demolist = [1,2,3,4,5,6,7,8,9] #列表的定义
print demolist[0:5] #访问第1-5的元素
print demolist[0:8:2] #访问第1-8的元素,步长为2输出:
[1, 2, 3, 4, 5]
[1, 3, 5, 7]2)同样也可以使用del list_name(start:end[:step])来删除对应的元素。
例子:demolist = [1,2,3,4,5,6,7,8,9] #列表的定义
del demolist[0:8:2] #删除下标为0到7的元素
print demolist #输出整个列表输出:
[2, 4, 6, 8, 9]
3.列表的基本运算
1)列表的加法:列表可以同字符串一样相加。
例子:demolist = [1,2,3,4] #列表的定义
print demolist+[5,6,7,8,9]输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2)列表的乘法:相当于字符串的乘法,一个列表乘(*)以N次,表示这个列表相加了N次。
例子:demolist = ["y","y","c"] #列表的定义
print demolist* 3 #列表可以做乘法输出:
['y', 'y', 'c', 'y', 'y', 'c', 'y', 'y', 'c']
3)列表的in和not in运算:用于判断某个元素是否在(不在)列表中。在返回True,不在返回False。
例子:demolist = [1,2,3,4] #列表的定义
print 2 in demolist #判断元素是否在列表中
print 21 in demolist输出:
True
False4)列表的遍历:可以通过像字符串那样使用for循环来遍历列表。
例子:demolist = [1,2,3,4] #列表的定义
i = 0
for value in demolist:
print 'demolist[%d]: '%(i),value
i += 1输出:
demolist[0]: 1
demolist[1]: 2
demolist[2]: 3
demolist[3]: 45)列表的解析:可以方便的对列表中的元素进行运算,语法格式:[val_expr for val in list_name],val_expr是一个关于val的运算表达式,val用于存储for每次从列表中取出的元素,然后通过val_expr的运算形成一个新的列表项,for循环结束则生成一个新的列表。
例子:计算1-9每个数本身的次方,如2**2 = 4demolist = range(1,10) #列表的定义:生成一个[1,10)的列表
print demolist
new_list = [x**x for x in demolist]
print new_list输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489]4.列表相关函数
TIPS--->列表的函数很多,这里有个小技巧:遇到这种很多函数又记不住,可以通过help 函数查看该类型拥有的所有方法,例如:demolist = [1,2,3,4] #列表的定义
print help(demolist) #通过help函数查看该类型所有的函数方法输出:太多,已折叠代码
Help on list object: class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
|
| Methods defined here:
|
| __add__(...)
| x.__add__(y) <==> x+y
|
| __contains__(...)
| x.__contains__(y) <==> y in x
|
| __delitem__(...)
| x.__delitem__(y) <==> del x[y]
|
| __delslice__(...)
| x.__delslice__(i, j) <==> del x[i:j]
|
| Use of negative indices is not supported.
|
| __eq__(...)
| x.__eq__(y) <==> x==y
|
| __ge__(...)
| x.__ge__(y) <==> x>=y
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y]
|
| __getslice__(...)
| x.__getslice__(i, j) <==> x[i:j]
|
| Use of negative indices is not supported.
|
| __gt__(...)
| x.__gt__(y) <==> x>y
|
| __iadd__(...)
| x.__iadd__(y) <==> x+=y
|
| __imul__(...)
| x.__imul__(y) <==> x*=y
|
| __init__(...)
| x.__init__(...) initializes x; see help(type(x)) for signature
|
| __iter__(...)
| x.__iter__() <==> iter(x)
|
| __le__(...)
| x.__le__(y) <==> x<=y
|
| __len__(...)
| x.__len__() <==> len(x)
|
| __lt__(...)
| x.__lt__(y) <==> x<y
|
| __mul__(...)
| x.__mul__(n) <==> x*n
|
| __ne__(...)
| x.__ne__(y) <==> x!=y
|
| __repr__(...)
| x.__repr__() <==> repr(x)
|
| __reversed__(...)
| L.__reversed__() -- return a reverse iterator over the list
|
| __rmul__(...)
| x.__rmul__(n) <==> n*x
|
| __setitem__(...)
| x.__setitem__(i, y) <==> x[i]=y
|
| __setslice__(...)
| x.__setslice__(i, j, y) <==> x[i:j]=y
|
| Use of negative indices is not supported.
|
| __sizeof__(...)
| L.__sizeof__() -- size of L in memory, in bytes
|
| append(...)
| L.append(object) -- append object to end
|
| count(...)
| L.count(value) -> integer -- return number of occurrences of value
|
| extend(...)
| L.extend(iterable) -- extend list by appending elements from the iterable
|
| index(...)
| L.index(value, [start, [stop]]) -> integer -- return first index of value.
| Raises ValueError if the value is not present.
|
| insert(...)
| L.insert(index, object) -- insert object before index
|
| pop(...)
| L.pop([index]) -> item -- remove and return item at index (default last).
| Raises IndexError if list is empty or index is out of range.
|
| remove(...)
| L.remove(value) -- remove first occurrence of value.
| Raises ValueError if the value is not present.
|
| reverse(...)
| L.reverse() -- reverse *IN PLACE*
|
| sort(...)
| L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
| cmp(x, y) -> -1, 0, 1
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __hash__ = None
|
| __new__ = <built-in method __new__ of type object>
| T.__new__(S, ...) -> a new object with type S, a subtype of T None通过help查看的list相关函数
如果只记得方法名不知道参数怎么传了,可以用help(变量名.方法名),例如:
demolist = [1,2,3,4] #列表的定义
print help(demolist.insert) #通过help函数查看具体某方法的用法输出:
Help on built-in function insert: insert(...)
L.insert(index, object) -- insert object before index None1) 所以呢,列表的方法太多了,下面列举几个常用的函数:
demolist = [1,2,3,4] #列表的定义
demolist.pop() #1出桟,删除最后一个元素
print demolist demolist.pop(1) #2出桟,删除下标为1的元素
print demolist demolist.append(20) #3追加一个数
print demolist demolist.append('hello') #4还可以追加一个字符串、实型等任何类型
print demolist demolist.append(['a','b',"c",20]) #5甚至还可以追加一个列表,(注:python中字符用单引号双引号都一样)
print demolist print len(demolist) #6列表长度 demolist.insert(2, [8,9,10]) #7在列表的指定位置插入元素(可以时任意对象,如这里就是插入的一个列表)
print demolist print demolist.count(20) #8统计某个值在列表中出现的次数 demolist.extend([20,100,200,300]) #9将指定的列表以个体的方式追加到列表的末尾
print demolist demolist.remove(20) #10删除列表中第一次出现的指定元素
print demolist输出:
[1, 2, 3]
[1, 3]
[1, 3, 20]
[1, 3, 20, 'hello']
[1, 3, 20, 'hello', ['a', 'b', 'c', 20]]
5
[1, 3, [8, 9, 10], 20, 'hello', ['a', 'b', 'c', 20]]
1
[1, 3, [8, 9, 10], 20, 'hello', ['a', 'b', 'c', 20], 20, 100, 200, 300]
[1, 3, [8, 9, 10], 'hello', ['a', 'b', 'c', 20], 20, 100, 200, 300]
5.多维列表
其实前面已经体会到了,列表里可以嵌套一个列表,这就形成了多维列表。
例子:
demolist = [[1,2,3],[4,5,6],[7,8,9]] #定义二维列表相当于一个3*3的二维数组
print demolist
print demolist[0] #输出第一行
del demolist[0] #删除第一行
print demolist
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[1, 2, 3]
[[4, 5, 6], [7, 8, 9]]
Python基础笔记系列三:list列表的更多相关文章
- Python基础笔记系列十一:标准输入输出、文件读写和指针等操作
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...
- Python基础笔记系列一:基本工具与表达式
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...
- Python基础笔记系列十四:python无缝调用c程序
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...
- Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...
- Python基础笔记系列十二:requests模块的简单应用
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! httpbin httpbin这个网站能测试 HTTP 请求和响应的各种信 ...
- Python基础笔记系列十:模块
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Py ...
- Python基础笔记系列七:字符串定义和访问
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串定义和访问 1.字符串基础 a.字符串可以用单引号.双引号.三引号( ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- Python基础笔记系列八:字符串的运算和相关函数
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串的运算1.字符串的加法和乘法 python中不但支持字符串相加,还支 ...
随机推荐
- VS2010 / MFC + OpenCV 2.4.1打开图片
Windows 7 x64,VS2010 / MFC + OpenCV 2.4.1打开图片显示到Picture控件中. OpenCV 2.2.OpenCV 2.3同样适用. 工具/原料 WinXP / ...
- ArcGIS Silverlight 设置token
背景 arcgis for server采用多种安全认证方式.常用的就是就是采用token机制.所以对服务设置了安全,则前端需要提供相对应的token凭证.通常来说设置token有以下两种情形: 一是 ...
- settings配置与model优化
settings配置与model优化 settings: 项目基本配置(settings.py, models.py, admin.py, templates...).数据库操作.中间件 http: ...
- FatMouse and Cheese---hdu1078(记忆化搜索=搜索+dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意就是有n*n的地图,每个地方都有食物,数量不同,老鼠在(0,0)的位置每次它最多跳 k 步, ...
- 前端基础-css(1)
一.css的引入方式 现在的互联网前端分三层: HTML:超文本标记语言.从语义的角度描述页面结构. CSS:层叠样式表.从审美的角度负责页面样式. JS:JavaScript .从交互的角度描述页面 ...
- 系列文章(三):WAPI为无线局域网WLAN安全而生——By Me
导读:无线局域网(又称为WLAN,Wireless Local Area Network),其应用领域不断拓展,无线接入所具有的前所未有的连接性和自动化能够为人们带来巨大的便利和商机.与此同时,在信息 ...
- ansible安装及使用
一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...
- 创建pfx数字证书
相关参考: 安全工具: http://msdn.microsoft.com/zh-cn/library/dd233106(v=vs.110).aspx makecert: http://msdn.mi ...
- go——函数
1.定义 函数是结构化编程的最小单元模式.它将复杂的算法过程分解为若干个较小任务,隐藏相关细节,使程序结构更加清晰,易于维护.函数被设计成相对独立,通过接收输入参数完成一段算法指令,输出或存储相关结果 ...
- Delphi 正则表达式语法(2): 或者与重复
Delphi 正则表达式语法(2): 或者与重复 // | 号的使用, | 是或者的意思 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create ...