AI智能
改变未来

Python 高级特性(2)- 迭代


前置知识

  • 如果给定一个 list 或 tuple,我们可以通过for循环来遍历这个 lis t或 tuple,这种遍历我们称为迭代(Iteration)
  • 在 Python 中,迭代是通过for … in来完成的
lists = [1, 2, 3, 4, 5]for i in lists:print(i)

可迭代对象

  • for 循环 不仅可以用在 list 或 tuple 上,还可以用在其他可迭代对象上
  • list 这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是只要是可迭代对象,无论有无下标,都可以迭代
dicts = {\"a\": 1,\"b\": 2}for i in dicts:print(i)# 输出结果ab

如何判断一个对象是否是可迭代对象?

from collections import Iterablelists = [1, 2, 3, 4, 5]dicts = {\"a\": 1,\"b\": 2}print(isinstance(lists, Iterable))print(isinstance(dicts, Iterable))print(isinstance({\"test\"}, Iterable))print(isinstance(1234, Iterable))# 输出结果TrueTrueTrueFalse

enumerate 函数

  • 循环列表的话,默认是只返回元素值,如果想同时拿到元素值和对应的下标值呢?
  • enumerate 函数可以把 list 变成一个 索引-元素对的迭代对象,然后循环遍历这个对象即可
lists = [1, 2, 3, 4, 5]# 看看是不是迭代对象print(isinstance(enumerate(lists), Iterable))# 循环for ind, val in enumerate(lists):print(ind, val)# 输出结果True0 11 22 33 44 5

多嵌套列表

for x, y in [(1, 1), (2, 4), (3, 9)]:print(x, y)# 输出结果1 12 43 9

总结

任何可迭代对象都可以作用于 for 循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用 for 循环

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python 高级特性(2)- 迭代