取列表或元组中的元素
L[0:n] #取索引0到n-1个元素
L[:n] #0可以省略
L[-2:] #支持倒数切片
#几个几个取
L[::5] #所有数,每5个取一个
#元组和字符串也可以类似取
(0, 1, 2, 3, 4, 5)[:3]
'ABCDEFG'[::2]
如何判断一个对象是可迭代对象呢?方法是通过collections.abc模块的Iterable类型判断:
from collections.abc import Iterable
isinstance(123, Iterable)
False
list或tuple的遍历就是迭代,借助for in循环
for i in L:
return
}
#带索引和元素的迭代
for i, value in enumerate(['A', 'B', 'C']):
... print(i, value)
...
0 A
1 B
2 C
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
... print(key) #迭代key
for value in d.values() #迭代value
for k, v in d.items() # 同时迭代key和value
for ch in 'ABC':
... print(ch)
迭代查找一个list中最小和最大值,并返回一个tuple
import random
def FindMinAndMax(L):
if L == []:
return (None,None)
else:
min = L[0] #索引第一个元素很巧妙
max = L[0]
for i in L:
if i < min:
min = i
elif i > max:
max = i
return (min,max)
列表生成式相当于把for循环生成的列表进行简化,do的内容提前
写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来
x * x for x in range(1, 11)
for循环后面还可以加上if判断,是一个筛选条件,不能跟else
x * x for x in range(1, 11) if x % 2 == 0
要创建一个generator,只要把一个列表生成式的[]改成(),但区别于打印元素:
for n in g:
... print(n)
一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator函数
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。