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)列表的更多相关文章

  1. 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)

    # 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...

  2. python 的 集合,字典,元组,列表

    元组 tuple  a = (1,2,3) 元组不能修改 可权嵌套列表  如 (1,2,3,[1,2,3]) 里面的列表可修改  一般不这样用 列表list  a = [1,2,3] 集合set  a ...

  3. 20190804-Python基础 第二章 列表和元组

    容器,Python支持一种数据结构的基本概念(容器,基本上就是可包含其他对象的对象.) 两种主要的容器是:序列(如列表和元组)和映射(如字典) Ps: 列表与元组区别,列表可修改,元组不能. 对序列的 ...

  4. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  5. Python基础学习参考(六):列表和元组

    一.列表 列表是一个容器,里面可以放置一组数据,并且列表中的每个元素都具有位置索引.列表中的每个元素是可以改变的,对列表操作都会影响原来的列表.列表的定义通过"[ ]"来定义,元素 ...

  6. python基础知识3——基本的数据类型2——列表,元组,字典,集合

    磨人的小妖精们啊!终于可以归置下自己的大脑啦,在这里我要把--整型,长整型,浮点型,字符串,列表,元组,字典,集合,这几个知识点特别多的东西,统一的捯饬捯饬,不然一直脑袋里面乱乱的. 一.列表 1.列 ...

  7. 流畅的python 读书笔记 第二章 序列构成的数组 列表推导

    列表推导是构建列表(list)的快捷方式,而生成器表达式则可以用来创建其他任何类型的序列.如果你的代码里并不经常使用它们,那么很可能你错过了许多写出可读性更好且更高效的代码的机会. 2.2.1 列表推 ...

  8. [Python笔记][第二章Python序列-tuple,dict,set]

    2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...

  9. [python笔记][第二章Python序列-list]

    2016/1/27学习内容 第二章 Python序列-list list常用操作 list.append(x) list.extend(L) list.insert(index,x) list.rem ...

随机推荐

  1. JIRA恢复备份后无法上传附件

    1.在恢复JIRA 备份数据和附件后,上传附件失败,这一般是恢复附件时没有修改附件的拥有者和组 创建JIRA平台,会自动创建一个服务器的账户,如果是服务器第一次部署JIRA那么账户肯定是jira,如果 ...

  2. 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 ...

  3. Add hyperlink to textblock wpf

    Add hyperlink to textblock wpf Displaying is rather simple, the navigation is another question. XAML ...

  4. Python 学习 —— 进阶篇(装饰器、类的特殊方法)

    Python基础部分学完之后,在进入其OOP部分前,先理解一下其装饰器这种结构,其功能可类比于Java中的面向切面编程,下面参见具体实例: def log(f): def fn(x): print ' ...

  5. AlarmManager(闹钟服务)

    1.Timer类与AlarmManager类区别: 对Timer就是定时器,一般写定时任务的时候 肯定离不开他,但是在Android里,他却有个短板,不太适合那些需要长时间在后台运行的 定时任务,因为 ...

  6. 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 = ...

  7. thinkphp5 更改入口文件在主目录

    默认thinkPHP入口文件在public/index.php,而在虚拟主机部署时,不能设置访问路径,因此需要将入口文件放置在主目录上. 一.主目录下新建index.php 复制以下内容 // 定义应 ...

  8. 使用VLC发送TS流与播放TS流

    使用VLC发送TS流与播放TS流 一.如何使用VLC发送TS流 1.添加一个文件至VLC 2.选择串流,继续 3.选择UDP,点击添加 4.输入地址及端口 5.选择h.264+mp3(TS) 6.ne ...

  9. ios -转载-真机提示 iPhone has denied the launch request 问题

    环境: 手机版本12.1,Xcode10.0问题: 真机时提示 iPhone has denied the launch request ,试过了的各种方法,最终解决方法如下:1. 2. 3.清理Xc ...

  10. C# Winform中WebBrowser给网页中的input控件赋值/设置值

    订阅WebBrowser的DocumentCompleted事件,在里面写入 private void browser_DocumentCompleted(object sender, WebBrow ...