基于廖雪峰Python学习网站整理:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
-
- 切片(取一个list或tuple的部分元素)
- 例: test = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
- test[0:3] 从0取到3 (不包括3)// test[:3] 0可省略
- 也可以倒着取 test[-2:-1]
- 前10个数,每两个取一个:test[:10:2]
- 所有数,每5个取一个:test[::5]
- test[:] 就可以原样复制一个list
- tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:
- Str字符串等同
- 例: test = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
- 迭代:(通过for循环来遍历这个list或tuple)
- Python内置的enumerate函数可以把一个list变成索引-元素对
-
- Python内置的enumerate函数可以把一个list变成索引-元素对
- 列表生成式:(作用很强大)
- 列表生成式则可以用一行语句代替循环生成上面的list
- 把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来
- 列表生成式则可以用一行语句代替循环生成上面的list
- 切片(取一个list或tuple的部分元素)
- 使用两层或三层循环,可以生成全排列:
-
- 列表生成式也可以使用两个变量来生成list:
>>> score = { 'w':78,'L':99,"x":100,"h":56}# 设定成绩字典 >>> high =max(score.values())#最高分 >>> high 100 >>> low =min(score.values())#最低分 >>> low 56 >>> aver =sum(score.values())/len(score)#平均分 >>> aver 83.25 >>> high_name = [ name for name,sc in score.items() if sc==h]#最高分的名 >>> high_name ['x']
- 生成器:(Python中,这种一边循环一边计算的机制,称为生成器:generator。)
- 创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator。
-
- for循环直接构造 :
-
- 如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:
-
- 而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
-
- 创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator。