zoukankan      html  css  js  c++  java
  • Python中的迭代和可迭代对象

    什么是迭代(iteration)呢?

    给定一个list或者tuple,通过for循环来遍历这个list或者tuple、这种遍历就是迭代(iteration)。只要是可迭代的对象都可以进行迭代、怎么判断一个对象是否是可迭代的对象呢?可以用collections模块里面的iterable包的isinstance函数进行判断:

    >>> from collections import Iterable#载入模块
    >>> isinstance('abc',Iterable) #字符串是可迭代对象吗?
    True
    >>> isinstance([1,2,3],Iterable) #list是可迭代对象吗?
    True
    >>> isinstance({'dede':123},Iterable) #字典是可迭代对象吗?
    True
    

    对于字典的迭代:

    >>> d={'python':1,'php':2,'java':3}
    
    #默认迭代的是key
    >>> for i in d:
        print(i)
    python
    php
    java
    
    
    #自定义迭代key
    >>> for key in d.keys():
        print(key)
    python
    php
    java
    
    
    #迭代value
    >>> for value in d.values():
        print(value)
    1
    2
    3
    
    
    #同时迭代key,value
    >>> for k , v in d.items():
        print(k,v)
    python 1
    php 2
    java 3
    >>>
    

    怎样实现对列表和元组的下标循环呢?

    两种方法:

    #对于一个列表
    lanage=['python','php','java','c++']
    
    第一种:
    for x in range(len(lanage)):
        print(x,lanage[x])
    
    第二种:
    for i ,value in enumerate(lanage):
        print(i,value)
    
    #运行结果
    0 python
    1 php
    2 java
    3 c++
    
    
    0 python
    1 php
    2 java
    3 c++
    >>>
    #在同一行输出:
    for i ,value in enumerate(lanage):
        print(i,value ,end=',')
    结果:
    0 python,1 php,2 java,3 c++,
  • 相关阅读:
    ASP.NET Web Form(八)
    ASP.NET Web Form(八)
    软考知识点总结
    软考知识点总结
    c# 引用外部dll
    c# 引用外部dll
    ORA600 [Kcbz_check_objd_typ_1] Running a Job (Doc ID 785899.1)
    oracle创建em
    1918: 等值数目
    1917: 支配值数目
  • 原文地址:https://www.cnblogs.com/wushuaishuai/p/7762775.html
Copyright © 2011-2022 走看看