利用python的一些高级特性,可以用1行代码实现很,从而帮助我们提升了开发效率。
python提供了切片(Slice)操作符,用于取list或tuple的部分元素。
>>> L = ['a','b','c','d','e'] >>> L[0:3] # 取前3个元素,从索引0到索引3(但不包括索引3)的元素 ['a', 'b', 'c'] >>> L[:3] # 如果第一个索引是0,可以省略 ['a', 'b', 'c'] >>> L[-2:-1] # 倒数切片,倒数第2个元素,倒数第一个元素索引是-1 ['d'] >>> L[-2:] # 倒数前2个元素 ['d', 'e'] >>> L[0:5:2] # 取前5个元素,每2个取一次 ['a', 'c', 'e'] >>> L[::2] # 取所有元素,每2个取一次 ['a', 'c', 'e']
tuple是不可变的一种list,也支持切片操作,操作结果仍是tuple
字符串"abcde"也可看做是一个list,每个元素就是一个字符,也可以使用切片操作,其结果仍旧是字符串
如果给定一个list或tuple,可以使用for循环来遍历,这种遍历称为迭代(Iteration)。python中的迭代是通过for...in来完成,不仅可迭代list/tuple。还可迭代其他对象。
# 迭代list
>>> l = list(range(10))
>>> for item in l:
... print(item)
# 迭代dict,由于dict的存储不是像list那样顺序存储,所有迭代结果可能不是按顺序的
>>> d = {'a':1, 'b':2}
>>> for key in d: # 默认是迭代的key
... print(key)
...
b
a
>>> for value in d.values(): # 迭代value
... print(value)
...
2
1
>>> for k,v in d.items(): # 迭代key和value
... print(k, v)
...
b 2
a 1
# 迭代字符串
>>> for ch in 'abc':
... print(ch)
...
a
b
c
当使用for时,只要作用与一个迭代对象,就可以正常运行,我们不需要关注迭代对象是list还是其他数据类型。可以通过collections模块的Iterable类型判断一个对象是否是可迭代对象:
>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str类型可迭代
True
>>> isinstance(123, Iterable) # 整数不可迭代
False
>>> dict={'a':1}
>>> isinstance(dict, Iterable) # dict类型可迭代
True
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70754-5.html
这个世界超级军事强国