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 ...
随机推荐
- vue的一些随笔
一.点击路由后的样式,可以在路由文件index.js中设置 再在样式里面设置active的类名对应的样式. ———————————————————————————————————————————— 二 ...
- javaEE项目部署方式
1.手动部署 2.自动化部署 “自动化”的具体体现:向版本库提交新的代码后,应运服务器上自动部署
- mysql 优化知识点
附录: https://www.nowcoder.com/discuss/150059?type=0&order=0&pos=13&page=0 本文概要 概述 为什么要优化 ...
- 配置连接远程ip的Redis
1.修改redis服务器的配置文件redis.windows.conf 注释绑定的主机地址 # bind 127.0.0.1 修改redis的守护进程为no,不启用 daemonize "n ...
- fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合
1.问题起因 2017年3月15日,fastjson官方发布安全升级公告,该公告介绍fastjson在1.2.24及之前的版本存在代码执行漏洞,当恶意攻击者提交一个精心构造的序列化数据到服务端时,由于 ...
- 以太坊联盟链 parity 节点搭建
https://www.cnblogs.com/sumingk/articles/9097996.html 上一篇文章介绍了以太坊私有链 geth节点的搭建,本篇介绍下企业级应用 联盟链搭建,运用pa ...
- Linux命令:hexdump
hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII.八进制.十进制.十六进制格式进行查看. 指令所在路径:/usr/bin/hexdump 命令语法: hexdu ...
- 007-springboot 控制台中文乱码
处理方式 1.FIle encoding 设置为UTF-8 2.-Dfile.encoding=UTF-8 配置tomcat 的的VM启动参数:-Dfile.encoding=UTF-8 3.idea ...
- (翻译) Poor misunderstood 'var'
It seems most programmers coming to JavaScript from C, C++, Java, and the like equate the var statem ...
- Linux命令之iptables
从CentOS7开始,系统自带的防火墙更改为firewalld,但同样支持iptables,不过只有iptables命令,如果想要使用iptables服务需要自行安装iptables-server. ...