review the advance features in Python
the slice
l = [‘yuhanyu’,’cs’,23,’guilin’]
print(l[0:4]) # yuhanyu cs 23 guilin
name[x:y], this is a list, from x strat, count y numbers
if the x == 0, can ellipsis it
print(l[-3:-1])
name[x:y:z] # z that means z interval numbers
the Iteration
it can use in list, tuple and other object
should notice that () is tuple, [] is list, {} is dict
d = {‘a’:1,’b’:2,’c’:3}
for key in d:
print(key)
for value in d.values():
print(value)
for key, value in d.items():
print(key,value)
there are 3 ways to get the key, value or both in dict
how to judge a object is a Iterable or not
from collections import Iterable
print(isinstance([1],Iterable))
# the List Comprehensions
print([x*x for x in range(1,11) if x%2 == 0])
should notice the indent(缩进)!!!
the generator
在Python中,这种一边循环一边计算的机制,称为生成器:generator
g = (x*x for x in range(11)) # this is a generator,
for a in g: # should see the parentheses(小括号)
print(a)
the iterator
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
把list、dict、str等Iterable变成Iterator可以使用iter()函数:
from collections import Iterator
print(isinstance(iter([]), Iterator))