gpt4 book ai didi

python - Python中列表,序列和切片之间的区别?

转载 作者:IT老高 更新时间:2023-10-28 20:29:52 26 4
gpt4 key购买 nike

这些内置的 Python 数据类型:listsequenceslice 之间有什么区别?在我看来,这三个本质上都代表了 C++ 和 Java 所称的 array

最佳答案

你在你的问题中混合了非常不同的东西,所以我会回答一个不同的问题

您现在询问的是 Python 中最重要的接口(interface)之一:iterable - 它基本上是您可以使用的任何东西,例如 for elem in iterable

iterable 有三个后代:sequencegeneratormapping

  • sequence 是随机访问的可迭代对象。您可以要求序列中的任何项目,而不必消耗它之前的项目。使用此属性,您可以构建 slices,它一次为您提供多个元素。一个切片可以给你一个子序列:seq[from:until] 和每个第 n 项:seq[from:until:nth]listtuplestr都是序列。

  • 如果访问是通过键而不是整数位置完成的,则您有一个映射dict 是基本映射。

  • 最基本的可迭代对象是生成器。它不支持随机访问,因此不支持切片。您必须按照给定的顺序消耗所有元素。生成器通常仅在您迭代它们时创建它们的项目。创建 generators 的常用方法是生成器表达式。它们看起来与列表推导式完全一样,只是带有圆括号,例如 (f(x) for x in y)。调用使用 yield 关键字的函数也会返回一个生成器。

所有可迭代对象的通用适配器是迭代器iterators 具有与它们支持的最基本类型相同的接口(interface),即 generator。它们是通过在可迭代对象上调用 iter 显式创建的,并在各种循环结构中隐式使用。

关于python - Python中列表,序列和切片之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2920619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com