python哪些类型可以作为迭代器_python0.8-----set类型与迭代器

set:类似dict,是一组dict的集合,不存储value。

本质:无序(没有下标)无重复的元素的集合。

创建:

创建set需要一个list或者tuple或者dict作为输入集合。重复元素在色中会被自动过滤。

s1=[1,2,3,4,5,6,1,2]

set(s1)={1,2,3,4,5,6} --表示》将列表转化成set集合类型。

s2=(1,2,3,4,5,6,1,2)

set(s2)={1,2,3,4,5,6} --表示》将元组转化成set集合类型。

s3={1:2,2:3,3:4}

set(S3)={1,2,3}       --表示》将字典转化成set集合类型。注意,只将字典的key转为set集合的元素。

还有以下操作:

list(set1)                      --表示》将set集合类型转化成列表类型。

tuple(set1)                   --表示》将set集合类型转化成元组类型。

增:

可以添加重复元素,但是不会有效果。

set1.add(value)  valu不可以是列表或者字典,一位列表或者字典是可变对象。

set1.update(value) 打碎插入,value必须是字符串,列表,元组,字典等可迭代类型。

删:

set1.remove(value):删掉集合set1里面的value大小的元素。

查:

只能通过遍历查找元素:

for i in set1:

print(i)

交集和并集:

set1=set2 & set3 :把set2和set3的交集赋给set1。

set1=set2  |  set3 :把set2和set3的并集赋给set1。

迭代器:

可迭代对象:可以直接作用于for循环的对象统称为可迭代对象(iterable),例如:字符串,列表,元组,set集合,字典。

可以用isinstance()判断对象是否为iterable对象。不过再调用isinstance之前应该输入:

from collections import Iterator

例如:

isinstance([],Iterable) 返回True,说明[]是可迭代对象

isinstance((),Iterable) 返回True

isinstance({},Iterable)  返回True

isinstance("",Iterable) 返回True

isinstance((x for x in range(10)),Iterable)  返回True,说明(x for x in range(10))是可迭代对象

可以直接作用于for的数据类型一般分为两种:

1:集合数据类型,如:list,tuple,dict,set,string。

2:generator,包括生成器和带yield的generator function。

迭代器(Iteratior对象):不但可以作用于for循环,还可以被next()函数不断调用,并返回下一个值,直到最后抛出一个异常stopIteration,表示无法继续返回下个值的对象,这边是迭代器。

可以用isinstance()函数判断一个函数是否是Iterator对象,不过在此之前,要调用:from collection import Iterator。

isinstance((x for x in range(10)),Iterator)  返回True,说明(x for x in range(10))是一个迭代器。

例如:

令k=(x for x in range(5)),则k就是一个迭代器。

next(k)=0

next(k)=1

next(k)=2

next(k)=3

next(k)=4

next(k)---因为迭代器内容已经访问完了,会抛出异常->stopIteration

list,tuple,str,dict都可以转化成为迭代器:

a=iter(list1) :把list1转化为迭代器了,赋值给a。

b=iter(tuple1) :把tuple1转化为迭代器了,赋值给b。

c=iter(str1) :把str1转化为迭代器了,赋值给c。

d=iter(dict1) :把dict1转化为迭代器了,赋值给d。

迭代器应用实例:将input以'\n'表示结束标志改成以'end'作为input的结束标志。

endStr='end'

str=''

for line in iter(input,endStr)

str+=line+'\n'

print(str)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程池实现填充短信_填充一个池需要多少个线程?

线程池实现填充短信在最近几个月中,我们一直看到很小但持续的操作失败,但有一个奇怪的异常– org.springframework.jdbc.CannotGetJdbcConnectionException –“无法获得JDBC连接; 嵌套异常是java.sql.SQLException:客户端尝试检出…

python线性回归x可以数量不一样吗_R和Python中的线性回归 - 在同一问题上的结果不同...

只是指出这一点: statsmodel s least squares fit does by default not include a constant. If we remove the constant from R适合,我们得到与Python实现非常相似的结果,或者相反,如果我们向 statsmodel -fit添加一个常量&#…

PostgreSQL开放自由

Open Liberty是源自WebSphere Liberty的有趣的新型OSS Java EE应用服务器。 您可以将Open Liberty配置为使用PostgreSQL作为其默认数据源&#xff0c;如下所示&#xff1a; 将<datasource> &#xff0c; <jdbcDriver>和<library>指令添加到server.xml配置中…

实现mysql百度式查询_mysql查询优化建议(百度)

1.对查询进行优化&#xff0c;应尽量避免全表扫描&#xff0c;首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!或<>操作符&#xff0c;否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断…

海思芯片怎么使用tde给qt加速_3519移植Qt适配附件

【实例简介】修改Qt5.5.1linuxfb插件代码&#xff0c;适配海思3519平台【实例截图】【核心代码】3519Qt移植.tar├── 3519Qt绉绘│ ├── linuxfb│ │ ├── include│ │ │ ├── acodec.h│ │ │ ├── fisheye_calibrate.h│ │ │ ├─…

jsf标签_多个动态包含一个JSF标签

jsf标签每个JSF开发人员都知道ui&#xff1a;include和ui&#xff1a;param标签。 您可以包括一个facelet&#xff08;XHTML文件&#xff09;并传递一个对象&#xff0c;该对象将在包含的facelet中可用&#xff0c;如下所示&#xff1a; <ui:include src"/sections/co…

用Java比较文件

我正在为PACKT创建一系列有关Java网络编程的视频教程。 有整节关于Java NIO。 一个示例程序是通过原始套接字连接将文件从客户端复制到服务器。 客户端从磁盘读取文件&#xff0c;服务器将到达的字节保存到磁盘。 因为这是一个演示&#xff0c;所以服务器和客户端在同一台计算机…

java哈希_Java如何采用哈希码实现分类(以员工分配为例)

5.总程序&#xff1a;下面代码是我们获取的所有的程序代码&#xff0c;如下&#xff1a;public static void main(String[] args) {Scanner scannew Scanner(System.in);System.out.println("请输入员工姓名&#xff1a;");String namescan.nextLine();System.out.pr…

java反射的原理_java反射机制的实现原理

java反射机制的实现原理反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力。通过这种能力可以彻底的了解自身的情况为下一步的动作做准备。下面具体介绍一下java的反射机制。这里你将颠覆原来对java的理解。Java的反射机制的实现要借助于4个类&#xff1a;class&…

java linkedlist 用法_Java LinkedList addLast()用法及代码示例

Java中的java.util.LinkedList.addLast()方法用于在LinkedList的末尾插入特定元素。用法:void addLast(Object element)参数&#xff1a;此函数接受单个参数element &#xff0c;如上面的语法所示。此参数指定的元素将附加在列表的末尾。返回值&#xff1a;此方法不返回任何值。…

spring 长轮询_Spring集成文件轮询和测试

spring 长轮询我最近实施了一个小项目&#xff0c;在该项目中&#xff0c;我们必须轮询文件夹中的新文件&#xff0c;然后在文件内容上触发服务流。 Spring Integration非常适合此要求&#xff0c;因为它带有一个通道适配器 &#xff0c;该适配器可以扫描文件夹中的新文件&…

java扫描指定package注解_java获取包下被指定注解的类

方案一&#xff1a; 采用reflections 框架(此框架依赖com.google.guava)2、项目依赖org.reflectionsreflections0.9.11com.google.guavaguava21.03、实现代码//入参 要扫描的包名Reflections f new Reflections("com.ggband.netty.execute.command");//入参 目标注解…

您将在下一个项目中使用JSF吗?

上周有一篇很棒的stackoverflow博客文章&#xff0c;主题是“ JavaScript框架的残酷生命周期” 。 这篇文章是关于Javascript UI框架&#xff08;angularjs&#xff0c;angular&#xff0c;jquery和react&#xff09;的流行和流行的速度。 这篇文章的关键指标是每月关于框架的问…

java dao层 service层_dao层与service层的区别

service是业务层&#xff0c;dao是数据访问层。这个问题我也曾经考虑过学java的时候&#xff0c;都是在service里直接调用dao&#xff0c;service里面就new一个dao类对象&#xff0c;调用&#xff0c;其他有意义的事没做&#xff0c;也不明白有这个有什么用然后百度了一下我们都…

java heapsort_排序算法笔记:堆排序 HeapSort in java

/*** 堆排序* 简述:* 首先使用建立最大堆的算法建立好最大堆&#xff0c;然后将堆顶元素(最大值)与最后一个值交换&#xff0c;同时使得堆的长度减小1 &#xff0c;调用保持最大堆性质的算法调整&#xff0c;使得堆顶元素成为最大值&#xff0c;此时最后一个元素已被排除在外* …

从Java 10中删除的API

在博客文章“ JDK 10 Release Candidate Phase ”中&#xff0c;我研究了JDK 10可能包含的十二个新功能。 在本文中&#xff0c;我介绍了一些可能会在JDK 10中删除的API&#xff0c;并探讨了一些在JDK 10中建议弃用的API。本文中的信息基于当前版本&#xff08;2018/1 / “ Jav…

使用java自带的日志管理_java日志管理

1.相关概念日志统一框架(日志门面)&#xff1a;apache commons logging、slf4j日志实现框架(实现层)&#xff1a;JDK自带的logging(java.util.logging)、log4j、Java Util Logging、log4j2、logback.(1)JDK自带的logging(java.util.logging)用法&#xff1a;1 importjava.util.…

在会话中使用JWT

在黑客新闻&#xff0c;reddit和博客上&#xff0c;该主题已经讨论了很多次。 共识是–请勿使用JWT&#xff08;用于用户会话&#xff09;。 而且我在很大程度上同意对JWT的典型论点 &#xff0c; 典型的“但我可以使其工作……”的解释以及JWT标准的缺陷的批评 。 。 我不会…

java案例源代码_求java案例源代码 越多越好!

展开全部import java.awt.*;import java.awt.event.*;import java.lang.*;import javax.swing.*;public class Counter extends Frame{//声明三个面板的布局GridLayout gl1,gl2,gl3;Panel p0,p1,p2,p3;JTextField tf1;TextField tf2;Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,…

安卓4.4玩java_Android4.4运行过程中闪退java.lang.NoClassDefFoundError

上周五项目测试时发现一个奇怪的Bug&#xff0c;项目中依赖了一个第三方框架&#xff0c;但是在android4.0-4.4.4之间的系统中运行会直接闪退&#xff0c;抛出错误异常为java.lang.NoClassDefFoundError。第一次遇到这样的问题&#xff0c;google了好久找到了以下几个原因&…