在编程中,列表可能与数组一样有用的数据结构。 什么是列表,如何创建它们? 如何在 Python 中使用列表? 您将从我们的文章中了解到这一点。
Python 中的列表是什么?
列表可以部分地用数组来标识,但列表的区别和优势(否则也称为列表)是它们可以组合不同的数据类型。 也就是说,列表为存储任何对象序列开辟了更多可能性。 称为列表的变量包含对内存中结构的引用,该结构包含对替代结构的引用。
Python 中的列表是混合类型的对象的有序集合,可以修改并且其对象可能不同。
这是什么意思? 让我们详细看一下定义。
列表的大小可以更改、缩小、添加新行。 您还可以更改列表的整个结构。 请记住,每次使用列表中的方法时,都会更改原始列表,而不是副本。
为了更清楚起见,您可以将 Python 中的列表视为需要在商店中购买的产品列表。 如果在制定购物计划时,所有必需的项目都位于一个在另一个之下,并且每个项目都有自己的行,那么 Python 中的清单包含用逗号分隔的所有元素并用方括号括起来,以便 Python 可以理解此处列出了一份清单。 元素用引号括起来。 这是一个强制性条件,因为每个元素都是单独的一行。
创建列表的方法
继续经典示例,让我们创建一个列表,我们将在未来使用和修改。 有几种方法可以生成列表。
其中之一是应用程序 内置函数 list( ). 为此,您需要处理任何可以迭代的对象(字符串、元组或现有列表)。 在这种情况下,一个字符串。
这是最后会发生的事情:
>>> list('list') ['c', 'n', 'i', 'c', 'o', 'to']
第二个例子表明列表可以包含无限数量的非常不同的对象。 此外,列表可以保持为空。
>>> s = [] # 空列表 >>> l = ['s', 'p', ['isok'], 2] >>> s [] >>> l ['s', 'p' , ['isok'], 2]
接下来,第三种形成列表的方式是所谓的 列表生成器.
列表生成器是用于创建列表的语法结构。 它类似于 for 循环。
>>> c = [c * 3 for c in 'list'] >>> c ['llll', 'iii', 'sss', 'ttt']
它还可以用于创建更庞大的结构:
>>> c = [c * 3 for c in 'list' if c != 'i'] >>> c ['lll', 'sss', 'ttt'] >>> c = [c + d for c in 'list' if c != 'i' for d in 'spam' if d != 'a'] >>> c ['ls', 'lp', 'lm', 'ss', 'sp' , 'sm', 'ts', 'tp', 'tm']
但是,在编译多个列表时,这种生成方法并不总是有效的。 因此,建议使用 for 循环来生成列表。
如果您需要引用列表中的任何元素,则使用索引。 每个元素都有自己的索引。
索引是列表中元素的编号。
如果要使用重复的相同元素填充列表,则使用 * 符号。 例如,您需要在列表中添加三个相同的数字:[100] * 3。
列出函数
功能 ——这也许是 Python 相对于其他编程语言的主要优势。 基本的内置函数可以应用于列表。
考虑其中最受欢迎的:
- 列表(范围()) – 如果任务是创建一个顺序列表,则使用范围函数。 该函数有以下形式:
- 范围(结束)。 当需要创建从零到有限数的列表时使用它。
- 范围(开始,结束)。 指定了开始和结束编号。
- 范围(开始,结束,步骤)。 step 参数指定选择特性。 例如,如果您需要从 1 到 21 的序列中选择每五个数字,则生成的列表将如下所示:[10,15]。
range 函数可以显着减少代码量。
- 亚麻(清单) - 允许您找出列表中有多少元素。
- 排序(列表,[键]) – 按升序对列表中的对象进行排序。
- 最大值(列表) – 返回最大的元素。
- 分钟(列表) – 相反函数 – 允许您返回具有最小值的元素。
您还可以使用其他内置函数:
- 列表(元组) – 将元组对象转换为列表。
- 总和(列表) – 如果所有值都是数字,则对列表中的所有元素求和,适用于整数和小数。 然而,她并不总是做对。 如果列表中有非数字元素,该函数将抛出错误:“TypeError: unsupported operand type(s) for +: 'int' and 'str'”。
列出方法
让我们回到我们在商店中购买的商品列表,并将其命名为 shoplist:
购物清单 = []
接下来,考虑列出方法:
- 附加(项目) – 在它的帮助下,您可以将元素添加到列表中。 在这种情况下,新元素将位于末尾。
让我们用正确的产品填写我们的新清单:
shoplist.append(面包)
shoplist.append(牛奶)
- 名单。延长(A) - 添加“列表到列表”。 此功能可以节省时间,因为您可以同时添加多个项目。 假设我们已经有一个水果列表,我们需要将它们添加到主列表中。
shoplist.extend(水果)
- 插入(索引,项目) – 在具有指定索引的元素上插入指定索引之前的指定值。
- lcount(项目) – 显示元素的重复次数。
- 名单。消除(项目) 是相反的函数 名单。附加 (x). 它可用于删除任何元素。 如果选中的项目不在列表中,则报错。
- 流行([索引]) – 移除选中的元素并以同样的方式返回。 如果未指定元素,则从列表中删除最后一个元素。
- 排序([键]) – 将列表中的元素按升序排列,但您也可以指定一个函数。
- 索引(项目) – 显示第一个选定元素的索引。
- 您可以使用方法展开列表,即镜像其所有元素 反向(列表). 最后一个元素成为第一个元素,倒数第二个元素成为第二个元素,依此类推。
- 使用命令创建列表的副本 复制(列表).
- 深拷贝(列表) – 深度复制。
- 使用该方法删除所有列表元素 清晰的列表).
值得注意的是,列表方法与字符串方法的不同之处在于它们立即改变列表,即不需要返回执行结果。
>>> l = [1, 2, 3, 5, 7] >>> l.sort() >>> l [1, 2, 3, 5, 7] >>> l = l.sort() > >> 打印(l) 无
以下是使用列表的示例:
>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(a.count(333), a.count(66.25), a.count('x')) 2 1 0 >>> a.insert(2, -1) >>> a.append(333) >>> a [66.25, 333, -1, 333, 1, 1234.5, 333] >>> a.index(333) 1 >> > a.remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25 ] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5]