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中不但支持字符串相加,还支 ...
随机推荐
- SharePoint服务器端对象模型 完结
整个系列已完结,大概看了一眼,平均阅读量不到200.估计也没什么人看了,而且服务器端对象模型除了在某些企业开发中会用到,从2013时代开始其实已经不是SharePoint开发的最佳选择了.不过既然已经 ...
- IE11上登陆oracle OEM时报:“证书错误,导航已阻止”且无继续浏览此网站(不推荐)的错误
问题原因:oracle oem证书的密钥小于1024 解决方案:在cmd中执行命令:certutil -setreg chain\EnableWeakSignatureFlags 8 出现以下提示: ...
- 视频流协议HLS与RTMP 直播原理 点播原理
小结: 1.HLS原理 视频--->图像.声音分别编码打包切割容器文件ts,建立纯文本索引文件.m3u8--->播放器http下载容器文件.索引文件,播放,下载 基于HLS可以实现直播和点 ...
- python 作用域知识点整理
1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? 1 2 3 4 5 6 7 8 9 10 11 12 #块级作用域 if 1 == 1: name = "lzl ...
- Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- Django组件 - cookie、session、用户认证组件
一.cookie 1.会话跟踪技术 1)什么是会话跟踪技术 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话 ...
- MySQL数据库(3)- 完整性约束、外键的变种、单表查询
一.完整性约束 在创建表时候,约束条件和数据类型的宽度都是可选参数. 作用:用于保证数据的完整性和一致性. 1.not null(不可空)与default 示例一:插入一个空值,如下: mysql&g ...
- Hibernate简单配置
1.配置构建路径,加载用户库,hibernate4.3.8 MySQL-Driver 2.写User.java 纯POJO+持久化注解=PO @Entity @Table(name=&quo ...
- 对 tensorflow 中 tf.nn.embedding_lookup 函数的解释
http://stackoverflow.com/questions/34870614/what-does-tf-nn-embedding-lookup-function-do embedding_l ...
- 判断json格式中是否含有key
1.obj["key"] != undefined 这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了. 2.if("key& ...