python3学习笔记(6)_iteration
#python3 学习笔记17/07/10
# !/usr/bin/env python3
# -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高
# for ... in #通过collections模块的 Iterable 类型判断一个对象是否可以迭代
from collections import Iterable
from collections import Iterator #list 有下标可以迭代,dict 没有下标,也可以迭代
d = {"a":1,"b":2,"c":3}
#dict 默认是迭代 key的,且dict的迭代结果顺序可能不一样
for key in d:
print(key) #如果要迭代value ,需这样做
for value in d.values():
print(value) #如果要同时迭代 key 和 value,可以这样做
for key, value in d.items():
print(key, value) #判断 字符串'abc' 是否可迭代
print(isinstance("abc",Iterable)) #判断list 是否可以迭代
print(isinstance(['a','b','c'],Iterable)) #判断 整数是否可迭代
print(isinstance(123,Iterable)) #通过enumerate 函数可以把一个list变成 索引-元素对,同时迭代之
for i,value in enumerate(['a','b','c']) :
print(i, value) #for循环里同时引用两个变量
for x, y in [(1,2),(3,4),(5,6)]:
print(x, y) #可以直接作用于for循环的数据类型有以下几种:
#一类是集合数据类型,lsit,tuple,dict,set,str
#一类是generator,包括生成器和带yield的generator function
# 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable
# 可以使用 isinstance()判断一个对象是否是 Iterable print(isinstance([],Iterable))#True
print(isinstance({},Iterable))#True
print(isinstance("abc",Iterable))#True
print(isinstance((x for x in range(10)), Iterable))#True
print(isinstance(100, Iterable))#False #生成器不但可以作用于 for循环,还可以被 next() 函数不断调用,并返回下一个值,直到最后抛出StropIteration
#错误,表示无法继续返回下一个值 #可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator #同样可以使用 isinstance() 判断一个对象是否是Iterator对象:
print(isinstance((x for x in range(10)), Iterator))#True
print(isinstance([], Iterator))#False
print(isinstance({}, Iterator))#False
print(isinstance("abc",Iterator))#False #可以使用 iter() 函数把 lsit,dict,str等 Iterable变为 Iterator
print(isinstance(iter([]), Iterator))#True
print(isinstance(iter("abc"), Iterator))#True #Iterator 对象支持 next()函数,并不断返回下一个数据,直到抛出StopIreration错误,这是一个有序的数据流序列,我们不知道序列的长度。但是由于序列是一个一个生成,可以生成无限多个元素,可见,他可以表示所有自然数。而list 是做不到这一点的
python3学习笔记(6)_iteration的更多相关文章
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- Python3学习笔记 - 准备环境
前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...
- python3学习笔记(7)_listComprehensions-列表生成式
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...
- python3学习笔记(5)_slice
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #切片slice 大大简化 对于指定索引的操作 fruits ...
- Python3学习笔记01-环境安装和运行环境
最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...
- python3学习笔记(9)_closure
#python 学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #从高阶函数的定义,我们可以知道,把函数作为参数的函数, ...
- python3学习笔记(8)_sorted
# python学习笔记 2017/07/13 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #python 内置sorted()函数 可以对list进 ...
- python3学习笔记(4)_function-参数
#python学习笔记 17/07/10 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- import math #函数 函数的 定义 #定义一个求绝对值 ...
- python3学习笔记(1)_string
#python学习笔记 17/07/07 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习 # ...
随机推荐
- 5 -- Hibernate的基本用法 --4 2 hibernate.properties文件与hibernate.cfg.xml文件
hibernate.properties : project\etc\hibernate.properties hibernate.cfg.xml : project\etc\hibernate.cf ...
- cocos2dx 优化略记
缓存cache: 预加载资源到内存, 可以异步加载. 直接使用sprite:create()来加载资源的话, 有时候会发现, 在第一次运行动作的时候会变的很卡. 那是因为第一次要加载资源到内存 ...
- iOS 播放gif动态图的方式探讨
原文链接:http://my.oschina.net/u/2340880/blog/608560 摘要iOS中没有现成的接口来展示gif动态图,但可以通过其他的方式来处理gif图的展示.iOS中播放g ...
- vmware centos7系统虚拟机复制到其他电脑后不能联网问题解决
虚拟机复制到别的电脑后,无法联网 使用ifconfig命令,没有显示出IP4的网址信息(显示ens33文件配置信息) 在网上查看相关资料,大部分说是mac地址不一致导致 如果配置了mac地址,那么在/ ...
- 【代码审计】BootCMS v1.1.3 文件上传漏洞分析
0x00 环境准备 BootCMS官网:http://www.kilofox.net 网站源码版本:BootCMS v1.1.3 发布日期:2016年10月17日 程序源码下载:http://w ...
- LINUX网络之ifconfig命令与ping
ifconfig命令 网络配置 ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数.用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在.要想将上述的配置信息 ...
- IOS 第三方支付的使用:支付宝
本文转载至 http://blog.csdn.net/u014011807/article/details/47726799 总结一下支付宝iOS使用步骤: 1 第三方支付:支付宝 使用过程: 1. ...
- 分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建
一.hbase简介 HBase是一个开源的非关系型分布式数据库(NoSQL),它参考了谷歌的BigTable建模,实现的编程语言为 Java.它是Apache软件基金会的Hadoop项目的一部分,运行 ...
- axure rp ----专业的快速原型设计工具
Axure RPAxure的发音是』Ack-sure』,RP则是』Rapid Prototyping』快速原型的缩写.Axure RP Pro是美国Axure Software Solution公司的 ...
- 设置RabbitMQ远程ip登录
由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq. ...