zoukankan      html  css  js  c++  java
  • 通过可迭代对象,迭代器,理解dict,list,filter,map,zip,dict,list之间的联系

    """
    理解迭代器原理后,无意中将以前的困扰的难点解开了。为什么有些对象,比如zip,filter,map对象能够使用list和dict方法转换
    有些却不行,一切的一切都是和可迭代对象以及迭代器的概念有关
    
    下面以zip为例
    
    """
    
    
    a = ['age', 'height']
    b = [18, '17cm']
    c = zip(a, b)  # 返回来的是 zip对象,该对象中存在iter和next方法,则是一个迭代器,同样是一个可迭代对象
    print(c.__next__())  # 因此可以直接输出:('age', 18),和能够使用for循环的原因
    
    
    """
    dict,list与可迭代对象之间的关系
    dict 接收可迭代对象作为参数,将对象中的每个元素转换成字典(前提是里面每个元素都是可迭代对象,且有两个元素,例如(age,18) 或 [age,18]
    list 接收可迭代对象作为参数,将对象中的每个元素添加到列表中,具体使用如下
    
    注意事项:list 和dict内部的实现同样是以for循环进行遍历添加属性到列表的,因此当使用list或dict遍历完后,下面再使用dict或list会得到空列表或字典
    """
    print(list(c))   # 将每个值作为元素添加到列表 [('age', 18), ('height', '17cm')]
    print(dict(c))  # {'age': 18, 'height': '17cm'}
    print(dict(list(c)))  # {'age': 18, 'height': '17cm'}
    
    
    
    

    本文来自博客园,作者:中州韵,转载请注明原文链接:https://www.cnblogs.com/zhongzhouyun/p/15315091.html

  • 相关阅读:
    二叉树的下一个节点
    二叉树的对称
    CString,string和char*
    二叉平衡树
    二叉树的深度
    必应首页图片下载
    Git报错:fatal: remote origin already exists.
    sublime text3 自定义代码片段
    atom自定义C++代码片段
    vscode 自定义代码片段(snippets)
  • 原文地址:https://www.cnblogs.com/zhongzhouyun/p/15315091.html
Copyright © 2011-2022 走看看