小编典典

解释起来很棘手。我会试一试:

与[iter(lst)]您创建一个包含一个项目的列表。该项目是列表上的迭代器。

每当python尝试从此迭代器获取元素时,lst都会返回的下一个元素,直到没有更多元素可用为止。

只需尝试以下操作:

i = iter(lst)

next(i)

next(i)

输出应如下所示:

>>> lst = [1,2,3,4,5,6,7,8]

>>> i = iter(lst)

>>> next(i)

1

>>> next(i)

2

>>> next(i)

3

>>> next(i)

4

>>> next(i)

5

>>> next(i)

6

>>> next(i)

7

>>> next(i)

8

>>> next(i)

Traceback (most recent call last):

File "", line 1, in

StopIteration

现在,您将创建一个包含两次 完全相同的 迭代器的列表。你这样做 itlst = [iter(lst)] * 2

试试以下:

itlst1 = [iter(lst)] * 2

itlst2 = [iter(lst), iter(lst)]

print(itlst1)

print(itlst2)

结果将类似于:

>>> itlst1 = [iter(lst)] * 2

>>> itlst2 = [iter(lst), iter(lst)]

>>> print(itlst1)

[, ]

>>> print(itlst2)

[, ]

需要注意的重要一点是,该itlst1列表包含两次相同的迭代器,而itlst2包含两个不同的迭代器。

说明尝试输入:

next(itlst1[0])

next(itlst1[1])

next(itlst1[0])

next(itlst1[1])

并将其与:

next(itlst2[0])

next(itlst2[1])

next(itlst2[0])

next(itlst2[1])

结果是:

>>> next(itlst1[0])

1

>>> next(itlst1[1])

2

>>> next(itlst1[0])

3

>>> next(itlst1[1])

4

>>>

>>> next(itlst2[0])

1

>>> next(itlst2[1])

1

>>> next(itlst2[0])

2

>>> next(itlst2[1])

2

请尝试以下操作:

i = iter(lst)

list(zip(i, i))

zip()有两个参数。每当您尝试从中获取下一个元素时,zip都将执行以下操作:

从作为第一个参数的iterable中获得一个值

从iterable中获取一个值,该值是第二个参数

返回具有这两个值的元组。

list(zip(xxx)) 将重复执行此操作并将结果存储在列表中。

结果将是:

>>> i = iter(lst)

>>> list(zip(i, i))

[(1, 2), (3, 4), (5, 6), (7, 8)]

下一个使用的技巧是用于*将第一个元素用作函数调用的第一个参数,将第二个元素用作第二个参数,依此类推)*(双星号/星号)和(星号/星号)的作用是什么做参数?

所以写:

itlst1 = [iter(lst)] * 2

list(zip(*itlst1))

在这种情况下等于

i = iter(lst)

itlst1 = [i] * 2

list(zip(itlst1[0], itlst[1]))

等同于

list(zip(i, i))

我已经解释过了

希望以上解释了大多数技巧。

2021-01-20

pythoniter 2_python [iter(list)] * 2是什么意思?相关推荐

  1. python中的next()以及iter()函数

    我们首先要知道什么是可迭代的对象(可以用for循环的对象)Iterable: 一类:list,tuple,dict,set,str 二类:generator,包含生成器和带yield的generato ...

  2. Python 高阶函数filter、map、reduce、reversed、sorted及迭代器函数 iter

    1. filter(function, iterable) 过滤器,过滤掉不满足函数 function 的元素,重新返回一个新的迭代器. 其中 function 函数的第一个参数是可迭代对象 iter ...

  3. iter迭代器的应用

    迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 用户不用关心迭代器的内部结构,仅需通过next方法不断去读取下一个内容 不能随机访问任意一个内容,只 ...

  4. Python 之 杂谈(迭代器iter)、偏函数

    1. l = [1,2,3,'b',5,6] def func():return l.pop() x = iter(func,'b') print(x.__next__()) print(x.__ne ...

  5. python内置函数:iter、enumerate和next

    文章目录 iter.enumerate iter enumerate iter.next iter.enumerate 共同点:都可以可以用来访问可迭代对象 区别:前者访问迭代对象时只返回元素,后者除 ...

  6. python iter 迭代函数 简介

    iter函数用法简述 Python 3中关于iter(object[, sentinel)]方法有两个参数. 使用iter(object)这种形式比较常见. iter(object, sentinel ...

  7. python3精要(17)-迭代器iter,下一个next,列表解析

    stdn=["张三","李四","王五","李红","张平"] age=[15,28,18,19,3 ...

  8. comparator比较器用法_Python学习:好像很少人知道 Python iter() 的另外一个用法?...

    在前面的一期Python学习教程有跟大家介绍过关于序列.可迭代对象.迭代器.生成器的概念,其中有提到过,如果实现了 _iter_() 和 _next_() 就是生成器,同时验证可迭代对象最好的方法是 ...

  9. python学习-知识点进阶使用(end、while else、range、iter、list的多种遍历方式)

    文章目录 end 关键字 while else range 迭代器 结语 end 关键字 int1, int2 = 0, 1 while int2 < 1000:print(int2, end= ...

最新文章

  1. 【洛谷 P5341】 [TJOI2019]甲苯先生和大中锋的字符串(后缀自动机)
  2. 091101 T IModel
  3. AVL树和红黑树区别
  4. linux openfire mysql_Openfire 服务器在Linux上的安装
  5. java的求和函数_Java Stream流之求和的实现
  6. 【软考】2017年11月软件设计师上午真题1-4题答案解析
  7. 【内核数据结构】 内核链表分析
  8. (转)三层相关案例(及常见的错误)
  9. mysql删除一个月前数据_如何在数据库中始终保持一个月的数据,自动删除一个月之前的记录?...
  10. 关于数据库中的char与varchar
  11. HTML与CSS各种代码与用法,几种关于html和css的使用方法
  12. __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
  13. SQL Server Management Studio格式化SQL工具(可免费)
  14. 软著申请流程与方法详解
  15. codevs 4246
  16. PC和开发板之间传输文件
  17. vulnhub inclusiveness: 1
  18. 2023年华中科技大学新闻传播专硕考研上岸前辈备考经验指导
  19. ERR_ABORTED 404
  20. python爬虫,爬取豆瓣电影《芳华》电影短评,分词生成云图。

热门文章

  1. 蚂蚁开放平台—获取支付宝用户信息
  2. ps教学之logo设计。
  3. 给深度学习计算机视觉方向求职者的建议
  4. Django ORM查询之外键、关系的反向引用
  5. abap SY-INDEX SY-TABIX
  6. 蓝桥杯 第十七天 动态规划(3)
  7. 计算机无法共享的原因,不能共享的原因
  8. 哈工大 2021春 计算机系统 大作业程序人生
  9. 【Android系列1.0 驱动开发 --- Linux 驱动 内核】
  10. Pandas 中 SettingwithCopyWarning 的原理和解决方案