Python高级特性

2018-08-19  本文已影响10人  倾倒的吞天壶
  1. 切片slice
    取指定索引范围的操作:[0:10:2]-->意为从第一个元素到第11个元素,元素之间隔2
l = list(range(100))
print(l[0:10:2])
# [0, 2, 4, 6, 8]
  1. 迭代iteration
    给定一个list或tuple,通过for循环来遍历,这个过程称为迭代
d = {'a' : 1, 'b' : 2, 'c' : 3}
for key in d:
    print(key)
# a c b

for value in d.values():
    print(value)
# 1 3 2

for k, v in d.items():
    print(k, v)
# a 1 c 3 b 2
  1. 列表生成式list comprehensions
>>>[ x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]

写列表生成式时,把要生成的元素放在前面,后面跟for循环,就可以把list创造出来

  1. 生成器generator
    在循环的过程中计算后续元素,两种方式生成:
g = (x * x for x in range(10))
for n in g:
    print(n)
def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'
  1. 迭代器iterator
    凡是可作用于for循环的对象都是Iterable类型
    可以被next()函数调用并不断返回下一个值的对象称为Iterator
    生成器都是Iterator对象,但dictliststr虽然是Iterable,却不是Iterator,但可以使用iter()函数来转化
上一篇 下一篇

猜你喜欢

热点阅读