py2 to py3 return iterator

Views And Iterators Instead Of Lists

Some well-known APIs no longer return lists:

  • dict methods dict.keys()dict.items() and dict.values() return “views” instead of lists. For example, this no longer works: k = d.keys(); k.sort(). Use k = sorted(d) instead (this works in Python 2.5 too and is just as efficient).
  • Also, the dict.iterkeys()dict.iteritems() and dict.itervalues() methods are no longer supported.
  • map() and filter() return iterators. If you really need a list and the input sequences are all of equal length, a quick fix is to wrap map() in list(), e.g. list(map(...)), but a better fix is often to use a list comprehension (especially when the original code uses lambda), or rewriting the code so it doesn’t need a list at all. Particularly tricky is map() invoked for the side effects of the function; the correct transformation is to use a regular for loop (since creating a list would just be wasteful).

    If the input sequences are not of equal length, map() will stop at the termination of the shortest of the sequences. For full compatibility with map() from Python 2.x, also wrap the sequences initertools.zip_longest(), e.g. map(func, *sequences) becomes list(map(func,itertools.zip_longest(*sequences))).

  • range() now behaves like xrange() used to behave, except it works with values of arbitrary size. The latter no longer exists.
  • zip() now returns an iterator.
时间: 2024-11-14 12:23:48

py2 to py3 return iterator的相关文章

python模块之lib2to3(py2转py3自动化工具)

# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之lib2to3(py2转py3自动化工具) #http://tieba.baidu.com/p/3939904893 #操作步骤: 1.需要转换test.py文件为py3代码 #test.py文件放置在Scripts目录下,如果test.py文件不放置在Scripts目录下则 -w后面写完整的路径 #如: C:\python27\Tools\Scripts>2to3.py -w C:\P

windows10上同时安装py2和py3的情况

2018-06-14  16:14:51 1.同时安装python2和python3的时候,pip只是其中一个版本,使用对应Python版本的pip时,在命令行分别输入如下命令: 查看不同Python版本下pip的版本 python3 -m pip -V Python2 -m pip -V 安装各自的python包 python3 -m pip xxx python2 -m pip xxx 2.以下修改方式可以重新安装两个版本的pip,使得两个python版本的pip能够共存 在DOS命令框输入

py2与py3区别总结

1. py2中的str是py3中的bytes py2中的Unicode是py3中的str 2. py2里 import StringIO     StringIO.StringIO() py3里 import io    io.StringIO()  io.BytesIO() 3. py2 里 pip install mysql-python     import MySqldb py3 里 pip install pymysql             import pymysql      

py2和py3之间的不同

1.print函数 很琐碎,而 print 语法的变化可能是最广为人知的了,但是仍值得一提的是: Python 2 的 print 声明已经被 print() 函数取代了,这意味着我们必须包装我们想打印在小括号中的对象.Python 2 不具有额外的小括号问题.但对比一下,如果我们按照 Python 2 的方式不使用小括号调用 print 函数,Python 3 将抛出一个语法异常(SyntaxError). 2.整除 如果你正在移植代码,这个变化是特别危险的.或者你在 Python 2 上执行

同时安装py2与py3时的pip使用问题

很多新手都会在在电脑上面同时安装Python2和Python3,但是安装完两个版本以后pip如何使用?在命令行如何随心所欲的切换版本?下面我就来介绍一种方法:蛮简单的,亲测可用. 一.安装号两个版本,肯定要配置环境变量,这个就不多说了. 二.在Python安装好的盘里,找到Python.exe,然后对应分别设置为Python3.exe和Python2.exe.这样在命令行输入Python3和Python2就能任意使用两个版本了. 三.pip使用:我的Python默认版本是Python3. a.当

在Ubuntu14.04中安装Py3和切换Py2和Py3环境

前几天小编给大家分享了如何安装Ubuntu14.04系统,感兴趣的小伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统.今天小编给大家分享一下在Ubuntu14.04系统中如何安装Python3的简单教程,并且实现Python2和Python3直接的切换,具体的教程如下. 1.在Ubuntu系统中,关于Python2和Python3的安装其实很简单,比Windows下的安装要简单的多.一般来说,Python2都是Ubuntu系统自带的,默认的版本是Python2.

py2与py3的编码问题

一.python2 1.一共的两种类型 名称:存储类型 str:bytes(以bytes类型存储) Unicode:Unicode 二.Python3 1.两种类型 名称:存储类型 str:Unicode bytes:bytes 三.经过Unicode进行encode()或decode()都是以bytes的方式存储. 原文地址:https://www.cnblogs.com/gjx1212/p/12179527.html

Headfirst设计模式的C++实现——迭代器(Iterator)改良版

iterator.h 1 #ifndef _ITERATOR_H_ 2 #define _ITERATOR_H_ 3 4 class Iterator { 5 public: 6 virtual bool has_next() = 0; 7 virtual void *next() = 0; 8 }; 9 #endif menu.h 1 #ifndef _MENU_H_ 2 #define _MENU_H_ 3 4 class Menu { 5 public: 6 virtual Iterato

[LeetCode] Peeking Iterator

Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation – it essentially peek() at the element that will be returned by the next call to next(). Here is an example