跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何使用 enumerate 装饰?
未分類
14 1 月 2021

如何使用 enumerate 装饰?

如何使用 enumerate 装饰?

資深大佬 : fanqieipnet 0

如何使用 enumerate 装饰?今天番茄加速就来讲一下。

   enumerate 装饰

   for i, it in enumerate(iterators):

  …

   iterators[i] = repeat(fillvalue)

   enumerate 装饰后会得到一个由 index 和元素本身组成的 tuple,举个例子:

   In [1]: for i,ele in enumerate([9,4,2,5,8]):

  …: print((i,ele))

  …:

  (0, 9)

  (1, 4)

  (2, 2)

  (3, 5)

  (4, 8)

  此处使用 enumerate,因后面先遍历完的 iter(a),为保证和 iter(b)个数对齐,需要填充 fillvalue 值,需要知道 a 的 index,此处为 0.

  捕获迭代终止异常

   try:

   value = next(it)

   except StopIteration:

  …

   try… except 是异常捕获的标准模板,next(it)第一次执行返回 it 的第一个元素,a=[1,2,3],所以 value 值为 1.

  计数

   num_active 表示当前存活的列表个数,一旦一个列表迭代到终点,num_active 立即减 1

   num_active -= 1

   repeat

   iterators[i] = repeat(fillvalue)

   repeat 是 itertools 模块内另一个函数,如果 times 为默认值,则表示重复无限次,此处是一个 repeat 的典型用法。此处稍加注意,不要以为 times 参数默认值为 1,或者不理解为什么要无限次重复,记住这种用法。

  此处,repeat 返回一个无限次重复 fillvalue 值的迭代器,并赋值给此时触发 StopIteration 异常的列表。此处就是 iter(a),令其指向 repeat 创建的迭代器。

   yield 返回值

   value = fillvalue

   values.append(value)

   yield tuple(values)

  第一句,是在触发 StopIteration 时,将默认值 fillvalue 赋给 value,values 保存住列表对齐后位置的元素,第一次 for 退出时,values 内值为[1,4]

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具