day3_列表
一、列表
列表也通常被称为list 数组 array
1、列表定义
使用方括号([])即可
alist = [123,'abc','def',666,True]
空列表的定义:alist = [] 或 alist = list()
列表它的位置,或索引,第一个索引是0,第二个索引是1,依此类推
2、列表函数
1)len()方法:返回列表中元素个数
实例:
>>> alist = ['a','b','c','d']
>>> len(alist)
4
2)max()方法:返回列表元素的最大值
实例:
>>> alist = ['a','b','c','d']
>>> max(alist)
'd'
3)min()方法:返回列表元素中的最小值。
实例:
>>> alist = ['a','b','c','d']
>>> min(alist)
'a'
4)list()方法:用于将元组转换为列表。
实例:
>>> aTuple = (1,'sa',56,'ccc')
>>> list(aTuple)
[1, 'sa', 56, 'ccc']
3、列表切片
Python中符合序列的有序序列都支持切片(slice),例如列表,字符串,元组。
格式:【start:end:step】
start:起始位置
end:结束位置
step:间距
举例:
l = ['a','b','c','d','e','f','g','h','i','j']
print(l[0:4]) #切片取值,不包含最后一个下标元素(顾头不顾尾)
print(l[:5]) #最前面开始取,可以省略,代表从0开始取
print(l[4:]) #如果冒号后面不写,代表取到最后
print(l[:8:2]) #步长,也就是代表隔几个取一次
l[::-1]可以反转列表,就是个固定用法,理解不了就背下来
l=['python', 'Love', 'Im']
print(l[::-1]) #反向输出
4、列表的增删改查与排序
1)增(append,insert,extend)
A、append() 方法:用于在列表末尾追加新的对象,只能添加一个元素。
实例:
>>> alist = [123,'abc','def',666]
>>> alist.append('ccc')
>>> print('更新后的列表:',alist)
更新后的列表: [123, 'abc', 'def', 666, 'ccc']
B、insert() 方法:将指定对象插入到列表中的指定位置,只能插入一个元素。
实例:
>>> alist.insert(0,'start')
>>> print(alist)
['start', 123, 'abc', 'def', 666, 'ccc']
C、extend() 方法:通过在列表末尾追加可迭代对象中的元素来扩展列表。
实例:
list1 = [1,2,3,4,5]
list2 = ['a','b','c']
list1.extend(list2)
print('扩展后的list1:',list1)
输出:
扩展后的list1 [1, 2, 3, 4, 5, 'a', 'b', 'c']
2)删
A、列表中pop()方法:通过指定元素的索引值来移除列表中的某个元素(默认是最后一个元素),并且返回该元素的值,如果列表为空或者索引值超出范围会报一个异常。
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
...
>>> alist.pop() #不填索引值,默认删除后最后一个元素
'ccc' #返回值
>>> print('默认删除后最后一个元素:',alist)
默认删除后最后一个元素: ['start', 123, 'abc', 'def', 666]
>>> alist.pop(2)
'abc'
>>> print('删除后指定元素后的列表:',alist)
删除后指定元素后的列表: ['start', 123, 'def', 666]
B 、列表 remove() 方法:通过指定元素的值来移除列表中某个元素的第一个匹配项,如果这个元素不在列表中会报一个异常。
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> alist.remove('abc')
>>> print(alist)
['start', 123, 'def', 666, 'ccc'] #删除了元素‘abc’
注意:remove()只删除一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有的值。
C、del语句 :删除指定位置的元素
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> del alist[0] #删除第一个元素
>>> print(alist)
[123, 'abc', 'def', 666, 'ccc']
D、clear: 清空列表中的内容
>>> print(alist)
['start', '大山', 'abc', 'def', 666, 'ccc']
>>> alist.clear()
>>> alist
[]
3)改
修改元素的时候,通过下标来确定要修改的是哪个元素,然后进行修改
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> alist[1] = '大山'
>>> print(alist)
['start', '大山', 'abc', 'def', 666, 'ccc']
4)查(in,not in,count,index)
A、查找列表中的某个元素
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> print(alist[0]) #获取第一个元素
start
>>> print(alist[-1]) #获取最后一个元素
ccc
B、in 操作符:判断值是否在列表中,并返回true或false
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> 'start' in alist
True
C、not in 操作符:判断是否不在列表,并返回True或False
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc']
>>> 122343 not in alist
True
D、count方法:统计指定值在列表中出现的次数,返回指定值在列表这个能出现的次数
实例:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc',123]
>>> alist.count(123)
2
E、index方法:用于从列表中找出某个对象第一个匹配项的索引位置,如果这个对象不在列表中会报一个异常。
语法:L.index(obj[,start
=0[,stop=len(L)]])
参数:
obj -- 查找的对象。
start -- 可选参数,开始索引,默认为0。(可单独指定)
stop -- 可选参数,结束索引,默认为列表的长度。(不能单独指定)
实例1:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc',123]
>>> alist.index('abc')
2
实例2:
>>> alist = ['start', 123, 'abc', 'def', 666, 'ccc',123]
>>> alist.index(123,5) #从索引5开始查找对象123,找到的索引值为6
6
实例3:
>>> alist2 = [4,6,72,1,2,4,7,3]
>>> alist2.index(4,5,len(alist2)) #最后一个参数就是列表长度,不能改
5
>>> alist2.index(4,5,)
5
>>> alist2.index(4,5,7)
5
5)列表排序(sort,reverse)
A、sort() 方法:对列表进行排序,排序的元素类型需要一致
sort() 方法语法:
list.sort(cmp=None,key=None,reverse=False)
参数:
- cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
以下实例,默认sort排序为升序:
实例1:
>>> alist = ['beijing','tianjin','xiamen','shanghai','hunan']
>>> alist.sort()
>>> print(alist)
['beijing', 'hunan', 'shanghai', 'tianjin', 'xiamen']
实例2:
>>> alist2 = [4,6,72,1,2,4,7,3]
>>> alist2.sort()
>>> print(alist2)
[1, 2, 3, 4, 4, 6, 7, 72]
以下实例,降序输出列表:
>>> alist2 = [4,6,72,1,2,4,7,3]
>>> alist2.sort(reverse=True)
>>> print(alist2)
[72, 7, 6, 4, 4, 3, 2, 1]
关于cmp、key参数以后再补充。
sorted(iterable[, cmp[, key[, reverse]]]) iterable.sort(cmp[, key[, reverse]])
参数解释:
(1)iterable指定要排序的list或者iterable,不用多说;
(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:
students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:
1
2
|
students = [( 'john' , 'A' , 15 ), ( 'jane' , 'B' , 12 ), ( 'dave' , 'B' , 10 )] sorted (students, key = lambda student : student[ 2 ]) |
(3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:
1
|
sorted (students, key = lambda student : student[ 2 ]) |
key指定的lambda函数功能是去元素student的第三个域(即:student[2]),因此sorted排序时,会以students所有元素的第三个域来进行排序。
B、reverse()方法:对列表中的元素进行反向排序。
实例:
>>> alist2 = [4,6,72,1,2,4,7,3]
>>> alist2.reverse()
>>> print(alist2)
[3, 7, 4, 2, 1, 72, 6, 4]
5、列表的嵌套
套几层就是几维
nums1 = [1,2,3] #一维数组
nums2 = [1,2,3,[4,56]]#二维数组
nums = [1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组
print(nums[4][5][1]) #取二
print(nums[5][1]) #取五
print(nums[-1][-1]) #取五
6、列表的循环遍历
1)for循环遍历
A、输出每个元素:
实例:
alist = ['abc',23,'中国','ccc','ddd',89]
for i in alist:
print(i)
输出:
abc
23
中国
ccc
ddd
89
B、enumerate() 函数
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法:
enumerate(sequence,[start=0])
参数:
- sequence -- 一个序列、迭代器或其他支持迭代对象。
- start -- 下标起始位置。
实例1:
passwords = ['a','b','c','d']
a = list(enumerate(passwords,start=1)) #小标从1开始
print(a)
输出:
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
实例2:
在for循环中的应用实例:
想输出索引以及对应的元素。
普通for循环:
passwords = ['a','b','c','d']
i = 0
for j in passwords:
print (i,j)
i += 1
输出:
0 a
1 b
2 c
3 d
For循环使用enumerate()
passwords = ['a','b','c','d']
for i,j in enumerate(passwords):
print(i,j)
输出:
0 a
1 b
2 c
3 d
2)while循环遍历
passwords = ['a','b','c','d']
count = 0
while count < len(passwords):
print(passwords[count])
count += 1
输出:
a
b
c
d
7、range()
Range()函数可创建一个整数列表,一般用在 for 循环中。
语法:
range(start,stop[,step])
参数说明:
- start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例1:创建一个列表,里面的元素为1-10整数
l = list(range(1,11))
print(l)
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
实例2:同上效果
alist = [i for i in range(1,11)]
print(alist)
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
实例3:创建一个列表,里面元素是1-10中的偶数
alist = [i for i in range(1,10)]
print(alist[1::2])
实例3:创建一个列表,里面元素是1-10中的奇数
alist = [i for i in range(1,10)]
print(alist[::2])
day3_列表的更多相关文章
- ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单
前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
- ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区
前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...
- ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面
前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...
- 散列表(hash table)——算法导论(13)
1. 引言 许多应用都需要动态集合结构,它至少需要支持Insert,search和delete字典操作.散列表(hash table)是实现字典操作的一种有效的数据结构. 2. 直接寻址表 在介绍散列 ...
- Python列表去重
标题有语病,其实是这样的: 假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素 直接这样当然是不行的: def removeExists ...
- WPF 微信 MVVM 【续】修复部分用户无法获取列表
看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因. 前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web ...
- Emoji选项列表
一.需要的前提文件 从网上下载Emoji的表情包,当然是png的图片,因为WPF不支持彩色的Emoji,所以,做列表的时候,需要用图片. 随着压缩包一起的还有一个Emoji.xml文件,文件的层级结构 ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
随机推荐
- golang:slice切片
一直对slice切片这个概念理解的不是太透彻,之前学习python的就没搞清楚,不过平时就用python写个工具啥的,也没把这个当回事去花时间解决. 最近使用go开发又遇到这个问题,于是打算彻底把这个 ...
- 【GMT43智能液晶模块】例程七:定时器PWM实验——简易电子琴
实验原理: STM32定时器有PWM功能,GMT43模块上带有一无源蜂鸣器,其 PWM输入控制信号接在STM32定时器输出接口上(PB4/TIM3_CH1),可 以通过定时器的PWM输出频率从而控制蜂 ...
- 快播王欣发布匿名IM社交软件“马桶MT”
2019年1月14日,快播王欣推出了一款匿名IM社交软件——马桶MT,它的灵感像是来自于美国的匿名分享应用Secret(已关闭). 原快播创始人王欣近日在微博预告了其新公司云歌人工智能推出一款全新社交 ...
- 学习Mysql过程中拓展的其他技术栈:设置linux虚拟机的固定ip和克隆linux虚拟机
一.设置linux虚拟机的固定ip 1. 安装好虚拟机后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子 ...
- Android实现电话录音功能
需求分析 电话录音是在通话的时候进行录音,所以需要使用一个服务来完成功能. 需要监听电话的状态,分为三种状态: 空闲状态 TelephonyManager.CALL_STATE_IDLE 响铃状态 ...
- 如何把光盘制作成ISO镜像文件
如何把一张光盘转换成为ISO的镜像文件呢,这需要借助软件的力量. 下面来简单的介绍下吧. 工具/原料 UltraISO软碟通软件. 光驱 方法/步骤 下载并安装UltraISO软碟通软件. 插入要做的 ...
- laravel 5 : Class 'input' not found
在配置文件中:config\app.php 加上 'Input' => Illuminate\Support\Facades\Input::class, 或者 引用 :use Illumina ...
- [JS] ECMAScript 6 - Set & Map : compare with c#
Ref: Set 和 Map 数据结构 Day 0 - 1所学
- win7 cmd终端连接android手机运行adb shell脚本命令
win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...
- PHP开启伪静态(AppServ服务器)
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法 1.检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查 ...