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中不但支持字符串相加,还支 ...
随机推荐
- cocos2d-X学习之主要类介绍:精灵角色(CCSprite)
CCSprite是一副2D图像,CCSprite可以通过图像或者图像中的一个矩形子区域创建 如果它的父节点或者任意继承树上的节点是CCspriteBatchNode则具有下述特性: 父节点是CCSpr ...
- 机械迷城MAC下载及攻略
点击下载 无意间在verycd上看到这个游戏,很好玩的一个游戏. 画风非常可爱,有点复古风. 这里是 机械迷城 的专题频道 http://pc.pcgames.com.cn/pczq/jxmc/
- 160804、oracle查询:取出每组中的第一条记录
oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by ...
- AVCaptureInput和AVCaptureOutput子类
1.AVCaptureInput AVCaptureDeviceInput:用于从AVCaptureDevice对象捕获数据. AVCaptureScreenInput:从macOS屏幕上录制的一种捕 ...
- php 正则表达式一.函数解析
php正则表达式官方手册参考....... 一.php中 常用的正则表达式函数 1.preg_match与preg_match_all preg_match: 函数信息 preg_match_all: ...
- Log4j 2
Log4j – Apache Log4j 2 - Apache Log4j 2 http://logging.apache.org/log4j/2.x/ Apache Log4j 2 Apache L ...
- FW: git internal
Git 内部原理 不管你是从前面的章节直接跳到了本章,还是读完了其余各章一直到这,你都将在本章见识 Git 的内部工作原理和实现方式.我个人发现学习这些内容对于理解 Git 的用处和强大是非常重要的, ...
- cookies与session
一.cookies 本质:浏览器端保存的键值对 方便客户按照自己的习惯操作页面或软件,例如:用户验证,登陆界面,右侧菜单隐藏,控制页面列表显示条数... cookies是由服务端写在浏览器端,以后每次 ...
- 《CNI specification》翻译
Overview 本文提出了一个通用的基于插件的Linux容器网络解决方案,容器网络接口,CNI.它脱胎于旨在满足大多数rtk网络设计的rtk Networking Proposal. 首先,我们对如 ...
- Django HttpRequest对象详解
WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.也就是我们经常看到 ...