若是想要表达多个“事物”,可使用列表。
name = ['a','b','c']html
增:python
name.append('c') #在后面增长一个c name.insert(1,'d') #增长到b前面
删:并发
name.remove('f') #删除f del name[1] #删除编号1 name.pop(1) #删除编号1,若是不写那么就删除第一个。pop还能够将删除的值提取出来,从新赋值。 name.clear() #删除列表。
改:app
name[2]='b' #将b更改成f
查:函数
print(name[2],name[0]) #取号码进行识别 print(name[1:3]) #取1和2的值,3为结束位。切片功能 print(name[-1]) #取最后一个值 print(name[-2:]) #取最后两个值
以名字来查询:spa
print(name.index('a')) #以姓名方式来查找用户的编号 print(name.count('a')) #查看列表中有多少个a print(name2[0:-1:2]) #每隔2个打印一次。
翻转:线程
name.reverse() #进行翻转,将文件倒过来
排序:htm
name.sort() #排序方式为,特殊符号-数字-大写-小写-中文
合并:blog
name.extend(name2) #将name2的合并到name中.name2仍然会有,和name中的名称冲突也会一直执行。
复制:排序
name2 = name.copy() #浅copy,表示只能复制第一层列表中的文字,若是添加子目录,那么就只能copy更改后的。 import copy #深copy,能够copy子层内的全部文字。 name2= copy.deepcopy(name)
extend()和append()功能相似,但在处理多个列表时,返回的结果彻底不一样。
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> a.append(b)
>>> a
[1, 2, 3, [4, 5, 6]]
>>> a=[1,2,3]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]
若是想要在A列表中,删除B列表存在的内容:可使用:
案例:文件复制到A列表中,找到A列表想要删除的内容存放到B列表中,而后for循环B列表的内容删除A列表,最后再保存文件。
for i3 in b:
a.remove(i3)
列表生成式:
生成式:
做用:
使代码更简洁。
和生成器一并使用。
a=[i*2 for i in range(10)] #列表生成式
print(a)
#=
a=[]
for i in range(10): #普通的列表形式
a.append(i*2)
print(a)z
列表生成器:
就至关于将列表生成式内的命令对应的内存地址显示出来,再赋值给a。
例句:
就是将列表生成式的[],更改成()
a=(i*2 for i in range(10))
若是想调用某一次的必须使用for循环进行
2. 用函数来作生成器:
斐波那契数列(Fibonacci),除第一个和第二个数外,任意一个数均可由前两个数相加获得:
1,1,2,3,5,8,13,21,34...
def fib(max):
n,a,b = 0,1,1
while n < max:
print(a)
a,b = b,a+b
n=n+1
fib(10)
将数值进行保存,并赋值给f,进行生成器的转换。
def fib(max):
n,a,b = 0,1,1
while n < max:
# print(a)
yield a #保存函数的中断状态,返回。
a,b = b,a+b
n=n+1
return '---失败---'
f=fib(10)
print(f.__next__())
print('——————')
print(f.__next__())
print(f.__next__())
print(f.__next__())
特色是:
能够将函数进行中断,而后再回到函数。
能够实现并行效果。
注意:return命令,就是将错误值进行返回。并找出错误信息进行输出。
用装饰器来实现一个单线程下的,并发:
import time
def chibaozi(name): #6. 运行吃包子
print('%s 准备吃包子啦。'%name) #7. 打印name=A开始吃包子
while True: #8. 循环
baozi = yield #9. 中断函数并返回
print('包子[%s]来了,被[%s]吃了'%(baozi,name)) #15. 打印包子i值和被A值吃了,结束并返回至14步
def zuobaozi(name): #2. 运行函数
c = chibaozi('A') #3. 将A赋值c
c2 = chibaozi('B') #4. 将B赋值c2
c.__next__() #5. 返回值chibaozi,并将c的赋值给予给name。就是name=A
c2.__next__() #9. 再次进入到chibaozi函数中,并开始运行6-9,并再次返回。
print('开始准备作包子~') #10. 打印开始准备作包子
for i in range(1,10): #11. 循环10次作包子
time.sleep(1) #12. 时间等待1秒钟
print('作了2个包子') #13. 打印作了两个包子
c.send(i) #14. 将i值回送,并返回第9步。
c2.send(i) #15. 将i值回送,并返回到第9步。返回后继续运行for循环直至10次结束。
zuobaozi('xuan') #1. 运行zuobaozi,并将xuan赋值
报错信息:
IndexError: list index out of range的错误缘由
list[index]index超出范围
list是一个空的 没有一个元素
进行list[0]就会出现该错误