20190805-Python基础 第二章 列表和元组(2)列表
1. list函数,用于将字符串转换为列表
2. 基本的列表操作
修改列表 - 给元素赋值,使用索引表示法给特定的元素赋值,如x[1] = 2
删除元素 - 使用del语句即可
name1 = ['a','d','g','h']
name2 = ['','','','']
del name1[1]
print(name1)
print(len(name1)) del name2[1:3]
print(name2)
print(len(name2)) 结果:
['a', 'g', 'h']
3
['', '']
2
给切片赋值 - 同时给多个元素赋值
name = list('Perl')
name[1:] = list('ython')
print(name)
结果:
['P', 'y', 't', 'h', 'o', 'n']
给切片赋值 - 插入新元素(此时,切片工具中的第一个索引和第二个索引必须相同)
name = list('Perl')
name[1:1] = list('ython')
print(name)
结果:
['P', 'y', 't', 'h', 'o', 'n', 'e', 'r', 'l']
3. 列表方法
方法是与对象(列表、数、字符串等)联系紧密的函数。调用方法:
object.method(arguments)
3.1 append - 将一个对象附加到列表末尾 - P34
3.2 clear - 就地清空列表内容
list1 = [,,]
list1.append()
print(list1)
list1.clear()
print(list1)
结果:
[, , , ]
[]
3.3 copy - 复制列表
a = [1,2,3,4]
b = a
b[1] = 5
print(a)
print(b)
结果:
[1, 5, 3, 4]
[1, 5, 3, 4]
上述直接赋值的方法,让b指向a,并不能真正意义上复制一个列表给b,因为他们同时指向了同一个列表,则修改b也是在修改原列表。
a = [1,2,3,4]
b = a.copy()
b[1] = 6
print(a)
print(b)
结果:
[1, 2, 3, 4]
[1, 6, 3, 4]
3.4 count - 计算指定的元素在列表中出现的次数
tobe = ['to','be','or','not','to','be']
print(tobe.count('to'))
结果:2 x = [[1,2],1,1,[2,1,[1,2]]]
print(x.count(1))
print(x.count([1,2]))
结果:2,1
3.5 extend - 同时将多个值附加到列表末尾(将修改被扩展的序列)
a = [1,2,3]
b = ['a','b','c','d']
a.extend(b)
print(a)
结果:
[1, 2, 3, 'a', 'b', 'c', 'd']
a = [1,2,3]
b = ['a','b','c','d']
# 这里看看差异
c = a.extend(b)
print(a)
结果:
[1, 2, 3, 'a', 'b', 'c', 'd']
这里如果将c = a.extend(b)(新建一个c变量指向 a.extend(b) ),实际上c变量什么都没有,为None。
3.6 index - 用于在列表中查找指定值第一次出现的索引(若所查找值不属于该列表,则会报错)
a_list = ['a','b','c','d']
print(a_list.index('c'))
结果:2
3.7 insert - 用于将一个对象插入列表
num = [1,2,3,4]
num.insert(2,['a','b','c'])
print(num)
结果:
[1, 2, ['a', 'b', 'c'], 3, 4]
同extend一样,也可以使用切片赋值,来获得一样的效果。
3.8 pop
从列表中删除一个元素(末尾为最后一个元素),并返回一个元素
num = [1,2,3,4]
c = num.pop(2)
print(num)
print(c)
结果:
[1, 2, 4]
3
pop是唯一既修改列表又返回一个非None值得列表方法,参见3.5。
*** pop可实现一种常见得数据结构——栈(stack),后进先出。(待拓展学习,参见第10章)
3.9 remove
用于删除第一个为指定值得元素。
tobe = ['to','be','or','not','to','be']
tobe.remove('to')
print(tobe)
结果:
['be', 'or', 'not', 'to', 'be']
3.10 reverse
按相反得顺序排列列表中的元素。
num = [1,2,3,4]
num.reverse()
print(num)
结果:
[4, 3, 2, 1]
3.11 sort - 用于对列表就地排序(对原列表进行修改,不返回排序后列表副本)
x = [6,4,5,3,2,0,1]
x.sort()
print(x)
print()
结果:
[0, 1, 2, 3, 4, 5, 6]
需要排序后的列表副本,并保持原列表不变时,有如下两个方法
x1 = [6,4,5,3,2,0,1]
# 方法1
y1 = x1.copy()
y1.sort()
print(x1)
print(y1)
print()
# 方法2用sorted()函数,改函数会返回一个列表
y2 = sorted(x1)
print(y2)
11 结果:
12 [6, 4, 5, 3, 2, 0, 1]
13 [0, 1, 2, 3, 4, 5, 6]
14 [0, 1, 2, 3, 4, 5, 6]
3.12 高级排序
方法sort接受两个可选关键字参数:key和reverse。
参数key,可将其设置为一个用于排序的函数(很多情况下,将参数key设置为一个自定义函数很有用,详细见第6章);
x = ['afd','adagdh','eqr6tytregh','rewt','jhgfd']
x.sort(key=len)
print(x)
结果:
['afd', 'rewt', 'jhgfd', 'adagdh', 'eqr6tytregh']
参数reverse,可将其指定为一个真值(True或False),指定是否要按相反顺序排序。
x = ['afd','adagdh','eqr6tytregh','rewt','jhgfd']
x.sort(key=len,reverse=True)
print(x)
结果:
['eqr6tytregh', 'adagdh', 'jhgfd', 'rewt', 'afd']
20190805-Python基础 第二章 列表和元组(2)列表的更多相关文章
- 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
# 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...
- python 的 集合,字典,元组,列表
元组 tuple a = (1,2,3) 元组不能修改 可权嵌套列表 如 (1,2,3,[1,2,3]) 里面的列表可修改 一般不这样用 列表list a = [1,2,3] 集合set a ...
- 20190804-Python基础 第二章 列表和元组
容器,Python支持一种数据结构的基本概念(容器,基本上就是可包含其他对象的对象.) 两种主要的容器是:序列(如列表和元组)和映射(如字典) Ps: 列表与元组区别,列表可修改,元组不能. 对序列的 ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python基础学习参考(六):列表和元组
一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...
- python基础知识3——基本的数据类型2——列表,元组,字典,集合
磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...
- 流畅的python 读书笔记 第二章 序列构成的数组 列表推导
列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.如果你的代码里并不经常使用它们,那么很可能你错过了许多写出可读性更好且更高效的代码的机会. 2.2.1 列表推 ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- [python笔记][第二章Python序列-list]
2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...
随机推荐
- JIRA恢复备份后无法上传附件
1.在恢复JIRA 备份数据和附件后,上传附件失败,这一般是恢复附件时没有修改附件的拥有者和组 创建JIRA平台,会自动创建一个服务器的账户,如果是服务器第一次部署JIRA那么账户肯定是jira,如果 ...
- Codeforces 23A You're Given a String...
A. You're Given a String... time limit per test 2 seconds memory limit per test 256 megabytes input ...
- Add hyperlink to textblock wpf
Add hyperlink to textblock wpf Displaying is rather simple, the navigation is another question. XAML ...
- Python 学习 —— 进阶篇(装饰器、类的特殊方法)
Python基础部分学完之后,在进入其OOP部分前,先理解一下其装饰器这种结构,其功能可类比于Java中的面向切面编程,下面参见具体实例: def log(f): def fn(x): print ' ...
- AlarmManager(闹钟服务)
1.Timer类与AlarmManager类区别: 对Timer就是定时器,一般写定时任务的时候 肯定离不开他,但是在Android里,他却有个短板,不太适合那些需要长时间在后台运行的 定时任务,因为 ...
- Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 解决方案:$sql = ...
- thinkphp5 更改入口文件在主目录
默认thinkPHP入口文件在public/index.php,而在虚拟主机部署时,不能设置访问路径,因此需要将入口文件放置在主目录上. 一.主目录下新建index.php 复制以下内容 // 定义应 ...
- 使用VLC发送TS流与播放TS流
使用VLC发送TS流与播放TS流 一.如何使用VLC发送TS流 1.添加一个文件至VLC 2.选择串流,继续 3.选择UDP,点击添加 4.输入地址及端口 5.选择h.264+mp3(TS) 6.ne ...
- ios -转载-真机提示 iPhone has denied the launch request 问题
环境: 手机版本12.1,Xcode10.0问题: 真机时提示 iPhone has denied the launch request ,试过了的各种方法,最终解决方法如下:1. 2. 3.清理Xc ...
- C# Winform中WebBrowser给网页中的input控件赋值/设置值
订阅WebBrowser的DocumentCompleted事件,在里面写入 private void browser_DocumentCompleted(object sender, WebBrow ...