本文记录python的高级特性,包括切片、迭代、列表生成式、生成器、迭代器等。
参考《python3 教程》。
一般而言,切片可以很方便的截取字符串或者数组中的指定元素。
>>> arr = [0, 1, 2, 3, 4, 5]
>>> arr[0:2]
[0, 1]
从索引0开始取,直到索引2为止,但不包括索引2。即索引0,1,正好是2个元素。
>>> arr[3:5]
[3, 4]
>>> arr[-1:]
[5]
>>> arr[-2:]
[4, 5]
>>> arr[-3:-1]
[3, 4]
>>> arr = list(range(100))
>>> arr[0:10:2]
[0, 2, 4, 6, 8]
>>> arr[::10]
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> t[:3]
(1, 2, 3)
>>> t = (1,2,3,4,5)
>>> t[:2]
(1, 2)
>>> str = 'abcdefg'
>>> str[0:2]
'ab'
通过for循环可以遍历list或tuple类型数据,这种遍历方式就叫做迭代。语法遵从for…in方式:
arr = list(range(10))
for element in arr:
print(element)
arr = (1, 2, 3, 4, 5)
for element in arr:
print(element)
dic = {'k1': 1, 'k2': 2, 'k3': 3}
# 迭代key
for k in dic:
print(k)
# 迭代value
for v in dic.values():
print(v)
# 迭代k-v
for k,v in dic.items():
print(k, '->', v)
str = 'abcdefg'
for s in str:
print(s)
from collections.abc import Iterable
print(isinstance('abc', Iterable))
arr = list(range(10))
for i,v in enumerate(arr):
print(i, '=>', v)