python初学(2)列表 list
来源:互联网 发布:objective-c和java 编辑:程序博客网 时间:2024/05/22 04:39
(ID为注释,方便后面理解)
1、Python包含6种内建的序列,list,tuple,字符串,Unicode字符串,buffer对象,xrange对象。。。现主要进行list和tuple的学习
概述:list 类似于 C语言里的数组,但又不相同, C语言里的数组是某一个是数据类型(数据类型唯一),而 list 数据类型不唯一
实例: li = [ 1, 'a', 3.45 , 10000, [1 ,5] , (1 , 5) ] 都是可以的
2、一些基本操作
(1)索引,类似 C语言的下标访问,但区别在于支持负访问,-1代表最后一个元素
实例 : li = [ 1, 'a', 3.45 , 10000, [1 ,5] , (1 , 5) ] >>>li[-1] (1,5)
(2)切片:支持强大的切片能力(优雅的捷径)在提取连续序列方面很有用,
实例: li = [1, 2, 3, 4, 6, 5, 9]*3 print li #结果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9] ID=1 print li[2 : 5] #结果 [3, 4, 6] ID=2 print li[-3 : -1] #结果 [6, 5] ID=3 print li[ : 6] #结果 [1, 2, 3, 4, 6, 5] ID=4 print li[7 : ] #结果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9] ID=5 print li[ : ] #结果 [1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9, 1, 2, 3, 4, 6, 5, 9] ID=6 print li[3 : 1] #结果 []
切片操作的实现需要两个索引作为边界,第一个索引的元素包括在里面,第二个索引的元素不包括在里面
切片必须保持左边界小于有边界(步长为正数时)ID6
切片支持正负数作为索引 ID1,ID2;如果一面不写,代表直接到首部或者尾部ID3,ID4;全部不写,打印整个list,ID5
(2).2 关于步长
切片必须保持左边界小于有边界(步长为正数时)ID6
切片支持正负数作为索引 ID1,ID2;如果一面不写,代表直接到首部或者尾部ID3,ID4;全部不写,打印整个list,ID5
(2).2 关于步长
实例: print li[ : : 3] #结果 [1, 4, 9, 3, 5, 2, 6]
步长不能是0,可以为负数,注意负数时的情况,左边界大于右边界
实例: print li[1 : 3: -1] #结果 [] print li[3 : 1: -1] #结果 [4, 3]
(3)、序列相加,乘法,成员资格(类似字符串)
实例: li = [1, 2, 3, 4] li2 = [4, 5, 7] print li + li2 #结果 [1, 2, 3, 4, 4, 5, 7] print --------------- print [42]*10 #结果 [42, 42, 42, 42, 42, 42, 42, 42, 42, 42]
序列乘法可用于初始化列表,(None)
注意:字符串与list不能相加
(4)、元素赋值
类似于数组赋值
(5)、元素删除
del 元素(类似C++)
注意:字符串与list不能相加
(4)、元素赋值
类似于数组赋值
(5)、元素删除
del 元素(类似C++)
实例: li = [ 1, 2, 5, 6, 7, 9] del li[2] print li #结果 [ 1, 2, 6, 7, 9]
3、切片的一些扩展应用
实例: li = [ 1, 2, 6, 6, 7, 9] ID =1 li[1 : 1] = [10, 22, 23] print li #结果 [1, 10, 22, 23, 2, 6, 6, 7, 9] ID = 2 li[2 : 5] = [] print li #结果 [1, 10, 6, 6, 7, 9]
(1)、切片赋值 ID1 可以赋值为与原序列不等长的切片
(2)、切片删除 ID2 把删除序列赋值为[]空切片
(3)、切片插入 ID1 类似于赋值
(2)、切片删除 ID2 把删除序列赋值为[]空切片
(3)、切片插入 ID1 类似于赋值
4、方法
(1)、长度len , 最小值 min,最大值 max,
min max区别于C++,可以比较任意参数
(2)、list函数,把任意一种类型转化为列表类型
(1)、长度len , 最小值 min,最大值 max,
min max区别于C++,可以比较任意参数
(2)、list函数,把任意一种类型转化为列表类型
实例: s = 'The list is very useful' print list(s) #结果 ['T', 'h', 'e', ' ', 'l', 'i', 's', 't', ' ', 'i', 's', ' ', 'v', 'e', 'r', 'y', ' ', 'u', 's', 'e', 'f', 'u', 'l']
(3)、append函数 望列表后面添加元素,
append(...)
L.append(object) -- append object to end
可以在列表后面插任意类型的元素(object),可用于列表的扩张,
(4)、extend 可以一次性在列表的后面加另一个序列(也可以用切片赋值实现)
extend(...) #iterable(可以用for循环的)
L.extend(iterable) -- extend list by appending elements from the iterable
实例: li = [ 1, 2, 6, 6, 7, 9] li.append(1) li.append("you are good") print li #结果 [1, 2, 6, 6, 7, 9, 1, 'you are good'] li.extend([ 1, 2, 4]) li.extend(( 5, 6, 9)) print li #结果 [1, 2, 6, 6, 7, 9, 1, 'you are good', 1, 2, 4, 5, 6, 9]
(5)、count 统计某个元素出现次数
(6)、index 类似于字符串的index(但list没有find方法)
(7)、insert 插入 (可以用上面所讲的切片赋值插入解决)
(6)、index 类似于字符串的index(但list没有find方法)
(7)、insert 插入 (可以用上面所讲的切片赋值插入解决)
实例: li = [ 1, 2, 6, 6, 7, 9] li.insert(3,'four') print li #结果 [1, 2, 6, 'four', 6, 7, 9]
两个参数分别为插入位置,插入元素
(8)、pop函数 (唯一一个即修改列表又返回值的函数)
(8)、pop函数 (唯一一个即修改列表又返回值的函数)
实例: li = [ 1, 2, 6, 10, 7, 9] print li.pop(2) #结果 6 print li #结果 [1, 2, 6, 7, 9]
pop函数如果不写参数,则弹出最后元素,否则弹出对应索引的元素
pop函数的高级应用:栈和队列
栈:用pop函数和append函数维护一个栈(先进后出)
队列:用pop函数和insert函数维护一个队列(先进先出)
栈:用pop函数和append函数维护一个栈(先进后出)
队列:用pop函数和insert函数维护一个队列(先进先出)
(9)remove 函数 移除列表中某个值的一个匹配项
请注意:本函数改变了列表但不返回值
(11) sort 排序
实例: x = ['tom', 'jack', 'tom', 'lucy', 'bob', 'tom'] x.remove('tom') print x #结果 ['jack', 'tom', 'lucy', 'bob', 'tom'](10)、reserve 反转函数
请注意:本函数改变了列表但不返回值
(11) sort 排序
错误实例: x = [ 1, 2, 6, 10, 7, 9] y = x.sort() print x , y #结果 [1, 2, 6, 7, 9, 10] None 正确实例: x = [ 1, 2, 6, 10, 7, 9] y = x[ : ] #这一部很重要 如果改成 y = x 结果就要更改(这样相当于指向同一个列表) y.sort() print y #结果 [1, 2, 6, 7, 9, 10]
相当于建立一个副本。
(12)、sorted函数 获取已排序的列表副本,理论上可以用于任何序列,之后返回一个list
(12)、sorted函数 获取已排序的列表副本,理论上可以用于任何序列,之后返回一个list
实例: x = [ 1, 2, 6, 10, 7, 9] y = sorted(x) print y #结果 [1, 2, 6, 7, 9, 10]
1 0
- python初学(2)列表 list
- Python列表(List)
- Python列表(list)
- python初学(3)列表(List)应用(待续ing)
- Python 列表(list) 总结
- Python列表操作(list)
- python数据类型------list(列表)
- 初学python(三) list、tuple
- python初学七 list
- [python 笔记2]列表、字符串、字典(list?string?map?)
- 初学 Python — 列表遍历
- Python的列表(list)介绍
- python list(列表)赋值与复制
- (转载)Python 列表(list)操作
- Python笔记——列表(list)
- Python 学习笔记之列表(List)
- python 列表 list 操作 (不定期更新)
- Python学习之列表List()
- Android中的网络编程
- ubuntu下重启tomcat
- 转载::guolin专栏Android Fragment完全解析,关于碎片你所需知道的一切
- RabbitMQ默认端口
- hadoop思想起源和基础认识
- python初学(2)列表 list
- linux下搜索文件方式一
- 一种基于FPGA 的1080p 高清多摄像头全景视频拼接的泊车(机)
- 提交表单用ajax判断登录正确再跳转页面的方法二
- 连连看:核心代码分析
- Ember.js入门教程、博文汇总
- [leetcode]69. Sqrt(x)
- 匈牙利匹配 fzuoj 2232 炉石传说
- Bloom filter(布隆过滤器)概念与原理