python的可迭代对象包含哪些?

news/2024/10/6 23:36:35 标签: python, 开发语言

可迭代对象(Iterable)指的是那些能够一次返回一个元素的对象,这样就可以在 for 循环或者在其他需要迭代的上下文中使用。以下是一些常见的可迭代对象类型:

  1. 列表(List):如 ['a', 'b', 'c']
  2. 元组(Tuple):如 (1, 2, 3)
  3. 集合(Set):如 {1, 2, 3}
  4. 字典(Dictionary):如 {'a': 1, 'b': 2}。注意,字典是可迭代的,但迭代的是键(key),如果你想要迭代键和值,可以使用 .items() 方法。
  5. 字符串(String):如 'hello',迭代时会逐个返回字符。
  6. 生成器(Generator):通过生成器函数或生成器表达式创建,使用 yield 关键字。
  7. 文件对象(File Object):如 open('file.txt') 返回的对象,可以迭代文件中的每一行。
  8. 迭代器(Iterator):任何实现了 __iter__()__next__() 方法的对象,如上面提到的生成器。
  9. 集合的子类(如frozenset):不可变的集合,但仍然是可迭代的。
  10. 其他自定义对象:只要实现了 __iter__() 方法,返回一个迭代器,就可以是可迭代的。
    以下是几个例子:
python"># 列表
for item in [1, 2, 3]:
    print(item)
# 元组
for item in (1, 2, 3):
    print(item)
# 字符串
for char in "hello":
    print(char)
# 集合
for item in {1, 2, 3}:
    print(item)
# 字典,迭代键
for key in {'a': 1, 'b': 2}:
    print(key)
# 生成器表达式
for item in (x * x for x in range(3)):
    print(item)
# 生成器函数
def gen(n):
    for i in range(n):
        yield i
for item in gen(3):
    print(item)

在Python中,可以通过内置函数 iter() 来检查一个对象是否是可迭代的。如果对象是可迭代的,iter() 会返回一个迭代器;如果不是,将引发 TypeError。例如:

python">try:
    iter([1, 2, 3])  # 返回一个迭代器
except TypeError:
    print("Not iterable")
try:
    iter(42)  # 42 不是可迭代的,将引发 TypeError
except TypeError:
    print("Not iterable")

http://www.niftyadmin.cn/n/5692286.html

相关文章

SpringBoot框架下校园资料库的构建与优化

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…

大学生就业招聘:Spring Boot系统的架构分析

大学生就业招聘系统的设计与实现 摘要 随着信息互联网信息的飞速发展,大学生就业成为一个难题,好多公司都舍不得培养人才,只想要一专多能之人才,不愿是承担社会的责任,针对这个问题开发一个专门适应大学生就业招聘的网…

Flet介绍:平替PyQt的好用跨平台Python UI框架

随着Python在各个领域的广泛应用,特别是在数据科学和Web开发领域,对于一个简单易用且功能强大的用户界面(UI)开发工具的需求日益增长。传统的Python GUI库如Tkinter、PyQt虽然功能强大,但在易用性和现代感方面略显不足…

Chromium 中JavaScript File API接口c++代码实现

构造函数File - Web API | MDN (mozilla.org)构造函数 File() 返回一个新构建的 File 对象。 实例属性 File 接口还继承了 Blob 接口的属性。 File.lastModified 只读 返回文件的最后修改时间,以 UNIX 纪元(1970 年 1 月 1 日午夜)以来…

MVVM 架构模式:解耦、可测试与高效

在现代的前端开发中,MVVM(Model-View-ViewModel)已成为非常流行的设计模式,尤其是在单页面应用(SPA)开发中。它通过解耦视图和业务逻辑,提升了代码的可维护性和扩展性。今天我们来深入探讨MVVM …

javaScript数组(16个案例+代码+效果图)

目录 1.数组的概念 2.创建数组 1.通过数组字面量创建数组 1.代码 2.效果 2.通过new Array()创建数组 1.代码 2.效果 3.数组的基本操作 1.获取数组的长度 案例:获取数组的长度 1.代码 2.效果 2.修改数组的长度 1.代码 2.效果 4.访问数组 案例:访问数组 1.代码 2.效果 5.遍历数组…

[单master节点k8s部署]30.ceph分布式存储(一)

ceph是一种分布式存储系统,包括块存储、对象存储和文件系统。 块存储(RBD) 块是一个字节序列,通常包含512个字节。基于块的存储接口是一种数据存储方式,通过将数据划分为块,并通过特定的接口来访问和管理…

在谷歌colab运行YOLO系列(重要比在云服务器搭建运行快)

在谷歌colab运行YOLO系列(重要比在云服务器搭建运行快) 一、谷歌云硬盘二、克隆 YOLOV5进行运行测试1,修改prepare文件中的参数2,修改voc.yaml3,修改yolov5s.yaml4,防止colab自动断开的方式(必须…