软件研发

Python中的列表:可变性,实用程序和可访问性

2020-08-12 18:01:16 | 来源:中培企业IT培训网

列表是python中的一个序列。list的字典含义是“连续写或打印的许多连接项目或名称”。它的字典含义和在编写程序时在Python中的用法没有太大区别。我们经常使用列表,无论是在日常生活中,还是在程序中。每当我们要根据某些条件对某些项目进行分组时,我们都会列出清单。Python列表提供了相同的功能,您可以灵活地对每个元素进行随机访问,修改每个元素,从中添加或删除元素来对项目进行分组。因此,让我们从创建列表开始。

list1 = [1,2,3,4,5]>>> list1

[1, 2, 3, 4, 5]>>> type(list1)

type()是python中的一个函数,它返回变量的对象类型。

在python中创建列表非常简单。您可以通过2种方式来实现。第一个是将元素括在方括号中,如上例所示。其他正在使用list()函数。

>>> list1 = list([1,2,3,4,5])>>> list1

[1, 2, 3, 4, 5]>>> type(list1)

关于列表的一件有趣的事情是,它们将对对象或元素的引用存储在其中。因此,在将列表重新分配给另一个变量时,python只会更改引用,而不会创建新的列表对象。

# id() function returns the object id.>>> id(list1)4426491160>>> list2 = list1>>> id(list2)4426491160

我们可以看到两个变量代表相同的对象。这确实加快了程序的执行速度。列表是全局变量,这意味着当您声明列表并将其作为参数传递给函数时,而不是将其复制并传递给函数时,python会将对列表的引用传递给它。

访问元素

Python为从0开始的每个列表元素分配一个索引。因此,如果要访问列表中的特定元素,可以通过其索引访问它。但是为此,您应该知道元素的索引。即使您不知道,也不必担心有一种解决方案。但是,现在让我们尝试按其索引访问元素。

>>> list1

[1, 2, 3, 4, 5]>>> print(list1[0])1>>> print(list1[2])3>>> print(list1[1])2

如果传递的索引与列表不相关或该索引中没有元素,则该列表将引发IndexError。

>>> list1

[1, 2, 3, 4, 5]>>> print(list1[9])

Traceback (most recent call last):

File "", line 1, in

IndexError: list index out of range

>>>

在某些情况下,您知道要访问的元素,但不知道其索引。在这种情况下,您可以在相应列表中搜索该元素,然后搜索(如果有列表,则使用index函数)将返回该元素的索引。

>>> list1

[1, 2, 3, 4, 5]>>> list1.index(2)1 // index of 2

List的可变行为。

列表数据类型属于“可变数据结构”类别。可变意味着您甚至可以在定义数据结构后对其进行任何更改。那么,您可以对列表进行哪些更改?您可以更新元素,添加新元素和删除元素。让我们看看。

更新列表元素

>>> list1

[1, 2, 3, 4, 5]>>> list1[0] = 2>>> list1

[2, 2, 3, 4, 5]

删除列表元素

>>> list1

[2, 2, 3, 4, 5]>>> list1.remove(5) #remove element 5>>> list1

[2, 2, 3, 4]

更新和删除元素既简单又直接。现在,当涉及到将元素添加到列表时,有很多方法可以做到这一点。所有这一切都取决于您要在何处添加元素。其中之一是使用insert()函数。

插入元素

list.insert(index,value)带有2个参数。第一个是要添加元素的位置,第二个是元素或值本身

>>> list1

[2, 2, 3, 4]>>> list1.insert(4,89)>>> list1

[2, 2, 3, 4, 89] #inserting 89 at 4th index.

如果您提供的索引比列表大小大得多怎么办?好吧,在这种情况下,列表会将元素添加到其最后一个索引。

>>> list1

[2, 2, 3, 4, 89]>>> list1.insert(100000,100)>>> list1

[2, 2, 3, 4, 89, 100]

除了插入之外,还可以使用append()将元素添加到列表的末尾。

>>> list1 = [2, 2, 3, 4, 89, 100]>>> list1.append(67)>>> list1

[2, 2, 3, 4, 89, 100, 67]

我们已经看到了带有列表的基本CRUD操作。该列表具有许多内置功能。我们不会涵盖所有这些内容。

不可变数据结构列表

我们可以有一个元组列表吗?元组是不可变的对象,列表是可变的对象。那么,如果我们声明一个元组列表,它将变得可变吗?让我们检查一下。

>>> list1.insert(6,("element1","element2"))>>> list1

[2, 2, 3, 4, 89, 100, ('element1', 'element2')]>>> type(list1)

>>> type(list1[6])

>>> list1[6][0]=3

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

因此,即使将不可变的对象存储在列表中,python也不会更改对象的属性。

列表可以具有任何数据类型作为其成员,无论它是字典,元组,字符串还是其他列表。这是程序员如此频繁使用列表的原因之一。

有更多关于列表的知识。一旦开始使用列表,您将学到这一点。但是,基本知识对于学习高级用法总是必不可少的。我已经在这里介绍了基本原理。如果您了解这些CRUD操作,则可以学习列表的高级用法。想了解更多关于python的信息,请继续关注中培伟业。

标签: Python 软件研发