- 切片。
- 迭代
- 列表生成式: List Comprehensions. Python内置的非常简单却强大的可以用来创建list的生成式。
def lower(list):
if len(list) == 0:
return list
else:
return [s.lower() for s in list if isinstance(s, str)]
def lower2(list):
r = []
if len(list) == 0:
return list
else:
for s in list:
if isinstance(s, str):
r.append(s.lower())
else:
r.append(s)
return r
第一种方法中, 非字符串被过滤掉了。 二层循环也支持. for k, v in dict.items()
- generator: 在Python中, 这种一边循环一边计算的机制,称之为生成器。
def fibonacci(limit):
fa = 0
fb = 1
n = 0
while n < limit:
print(fb)
fa, fb = fb, fa + fb
n = n + 1
return
def fibonacci2(limit):
fa = 0
fb = 1
n = 0
while n < limit:
yield(fb)
fa, fb = fb, fa + fb
n = n + 1
return
- 凡是可作用于for循环的对象都是Interable类型。
凡是可以作用于next()函数的对象都是Interator类型。
集合数据类型如list, dict, str等都是Interable但不是Interator. 可以通过iter()函数获得一个Interator对象。