zoukankan      html  css  js  c++  java
  • 【Python学习之五】高级特性2(切片、迭代、列表生成器、生成器、迭代器)

    2、迭代

      如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。在Python中,迭代是通过for ... in来完成的。

      只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代key:

    >>> d = {'a': 1, 'b': 2, 'c': 3}
    >>> for key in d:
    ...         print(key)
    ... 
    a
    b
    c

    还可以迭代value,通过 for value in d.values() ,同时迭代key, value可以用 for k, v in d.items() 。

      Python中for循环可以用于所有的可迭代对象,包括字符串:

    >>> for i in 'ABC':
    ...     print(i)
    ... 
    A
    B
    C

    判断一个对象是否是可迭代的,采用collections模块的Iterable类型判断:

    >>> from collections import Iterable
    >>> isinstance('abc', Iterable) # str是否可迭代
    True
    >>> isinstance([1,2,3], Iterable) # list是否可迭代
    True
    >>> isinstance(123, Iterable) # 整数是否可迭代
    False

      日常练习代码:

     1 #!/usr/bin/env python
     2 # -*- coding: utf-8 -*-
     3 # @Date    : 2018-05-22 19:46:15
     4 # @Author  : Chen Jing (cjvaely@foxmail.com)
     5 # @Link    : https://github.com/Cjvaely
     6 # @Version : $Id$
     7 
     8 # Iteration迭代:如果给定一个list或tuple,
     9 # 我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代
    10 #
    11 # dict可以迭代:
    12 # >>> d = {'a': 1, 'b': 2, 'c': 3}
    13 # >>> for key in d:
    14 # ...     print(key)
    15 #
    16 # 迭代value,可以用for value in d.values(),
    17 # 如果要同时迭代key和value,可以用for k, v in d.items()
    18 #
    19 # 请使用迭代查找一个list中最小和最大值,并返回一个tuple
    20 
    21 
    22 def findMinAndMax(L):
    23     if len(L) == 0:
    24         return (None, None)
    25     elif len(L) == 1:
    26         return (L[0], L[0])
    27     else:
    28         return (sorted(L)[0], sorted(L)[len(L) - 1])
    29 
    30 
    31 # 测试
    32 if findMinAndMax([]) != (None, None):
    33     print('测试失败!')
    34 elif findMinAndMax([7]) != (7, 7):
    35     print('测试失败!')
    36 elif findMinAndMax([7, 1]) != (1, 7):
    37     print('测试失败!')
    38 elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9):
    39     print('测试失败!')
    40 else:
    41     print('测试成功!')
  • 相关阅读:
    安装oracle xe一些注意点
    常用的软件设计模式的Java实现——让编程从野生到飞起
    Eclipse oxygen安装中文包
    Centos安装Redis
    Lunx下 怎样启动和关闭oracle数据库
    ORA-12537:TNS:connectionclosed错误处理过程
    启动Oracle时提示:ORA-01078:failure in processing system parameters
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
    windows下Tomcat配置多实例
    Liunx下安装jdk7
  • 原文地址:https://www.cnblogs.com/cjvae/p/9318326.html
Copyright © 2011-2022 走看看