Python中的循环技术,, 简单谈谈 Pyth


简单谈谈 Python 中容器的遍历和一下小技巧。

1、遍历单个容器 下面代码遍历一个 List 结构,同样适用于 Tuple、Set 结构类型
>>> x = [1, 2, 3, ‘p‘ , ‘y‘]>>> for v in x:...     print(x)...123py

遍历字典 Dict 结构也是一样的方法,注意区分 Key-Value
>>> y = {‘a‘:11, ‘b‘:22}>>> y{‘b‘: 22, ‘a‘: 11}>>> for v in y:...     print(v)...ba>>> for v in y.keys():...     print(v)...ba>>> for v in y.values():...     print(v)...2211>>> for v in y.items():...     print(v)...(‘b‘, 22)(‘a‘, 11)

2、同时遍历多个容器
借助 zip() 函数可以将多个容器集中在一起同时遍历,对于某些场合十分有效,zip() 是 Python 的内建函数,可以随时使用。
>>> x[1, 2, 3]>>> y{‘c‘, ‘b‘, ‘a‘}>>> for i, j in zip(x, y):  # 用i,j分别遍历容器x和y中的元素,一旦其中某个容器遍历结束循环终止。...     print(i, j)...1 c2 b3 a>>> z = (5, 6, 7)>>> for i,j,k in zip(x,y,z):     # 同时遍历三个容器...     print(i, j, k)...1 c 52 b 63 a 7

3、循环技巧
利用 Python 内建函数 reversed() sorted() set() enumerate() 函数可以实现一些实用的技巧。

获取 1-10的逆序序列>>> for i in reversed(range(10)):...     print(i+1, end = ‘ ‘)...10 9 8 7 6 5 4 3 2 1获取有序的字符序列>>> for c in sorted(‘hello world‘):...     print(c, end = ‘ ‘)...  d e h l l l o o r w去除重复数据>>> for x in set([1,1,2,2,2,3,3]):...     print(x, end = ‘ ‘)...1 2 3

4、注意事项 在循环遍历某个容器的同时,如果需要修改容器,最好不要直接在原始容器上进行修改,否则,会发生不可预料的结果。一个好的方法是在遍历容器前先拷贝一份原始数据,然后在这份拷贝的数据中进行遍历,需要修改时,直接修改原始容器中的数据,这样可以保证你当前正在遍历的容器与你最初所见相同。 使用 List 容器的 [:] 操作,该操作会返回一份当前容器的副本。
>>> word = [‘a‘, ‘b‘, ‘c‘]>>> for v in word[:]:...     word.append(‘q‘)...>>> word[‘a‘, ‘b‘, ‘c‘, ‘q‘, ‘q‘, ‘q‘]

参考:

[1] Python3.4 帮助文档 https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences

Python中的循环技术,布布扣,bubuko.com

Python中的循环技术

评论关闭