Python笔记 列表用法的介绍

Python的列表、字典与元组这些序列数据结构功能强大用起来相当方便,但学习起来像本人这样的菜鸟容易弄混,转眼之间旬月过去便忘记用法了,因而在此整理列表、字典、元组的用法备忘。本篇主要关于列表。

1.列表

首先我们来谈谈列表,python中的列表其实像是或者说就是c++中的容器,可以将各种不同的对象放在其中按照顺序储存与索引。
1.1创建列表
首先我们希望创建一个列表,我们可以通过用逗号分隔的不同的数据项再方括号括起来再将其地址赋给引用如下面的list1与list2:

list1 = [1, 2, 3, 4, 5 ]
list2 = ["a", "b", "c", "d"]

我们也可以创建空列表

list1 = []

我们可以看出在创建列表时初始化的方式是多样的,我们同样可以利用以下的语句初始化。

list1 = [i for i in range(10)]

这样与以下语句是等价的。

list1 = [0,1,2,3,4,5,6,7,8,9]

在希望将列表中的值置成一样的值时比如0或者字符串都可以用以下语句实现:

list1 = [0] * 5

这样的语句和直接赋5个0是一样的。不过我在用列表嵌套列表即二维列表时,在使用这个语法置0后,时我遇到过错误,所有的列表中的引用均是list[0]的引用,修改其中一个后所有的都改了,即出现了出乎意料的结果。

a=[[0,0]]*5
a[1][0]=1
print(a)

输出为

[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0]]

而不是

[[0, 0], [1, 0], [0, 0], [0, 0], [0, 0]]

其实是因为[0,0]是列表的一个引用,*5是将引用复制5份。
为了避免这个问题我们需要这样创建二维列表:

a = [[0] * 2 for i in range(5)]

这样就不会出现上述问题。

1.2访问列表
若我们成功创建了列表自然希望能够访问列表,其实我们可以像对待c语言的数组一样对待它。注意python中列表的索引也是从0开始的。
我们可以通过索引直接访问列表中的对象:

print ("list1[0]: ", list1[0])

若我们存的是整形数和C语言的以下语句几乎是一样的功能:

printf ("list1[0]: %d\n", a[0]);

输出的就是列表的第一个元素。
但是Python有些较为特色的用法比如切片操作:

print ("list2[1:5]: ", list2[1:5])

输出结果为

list2[1:5]:  [2, 3, 4, 5]

即输出列表索引值0~4的四个元素。
这里顺便提一下一些有关访问、查找、统计的内置函数
有时候我们希望找到某个元素的索引位置,可以使用内置函数实现

a=[0,1,2,3,4,5]
b=a.index(5)
print(b)#输出即为索引值5。

我们希望了解某个元素的出现次数时我们可以这样实现:

a=[0,1,2,3,4,5,5]
b=a.count(5)
print(b)#输出为2

在查找最大值与最小值时即可简单的用以下两个函数实现:

a=[0,1,2,3,4,5]
print(max(a),min(a))#输出为5 0

1.3编辑修改列表
我们完全可以像C语言对待数组一样直接对列表中对应索引的元素进行操作:

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

输出即为:

[1, 1, 2, 3, 4, 5]

完全在我们的意料之中。
与C语言所不同的是,我们可以通过以下的一些方法实现对列表的增删操作。
首先我们可以通过del关键字实现对指定项的删除:

list1 = [0,1,2,3,4,5]
del list1[0:2]
print(list1)

我们可以用一些内置函数同样实现指定项的删除:

list1 = [0,1,2,3,4,5]
list1.remove(4)#删除第一个与其参数值相同的对象
print(list1)
a=list1.pop()#删除并返回指定索引的对象,默认为末尾对象
print(a)#返回的被删除的值
print(list1)

输出为:

[0, 1, 2, 3, 5]
5
[0, 1, 2, 3]

同样我们可以用内置函数实现列表元素的增加,其中我们必须掌握的是append()和insert()。
使用append我们可以直接在列表后增加元素。

list1 = [1, 'xyz', 'hhh', 'abc'];
list1.append( 2020 );
print("Updated List : ", list1)

输出结果为

Updated List :  [1, 'xyz', 'hhh', 'abc', 2020]

使用insert()我们可以选择对象的插入位置,其参数分别为插入位置索引与插入对象,其用法如下:

list1 = [1, 'xyz', 'charlie', 'abc']
list1.insert( 3, 2020)
print("Final List : ", list1)

输出为:

Final List :  [1, 'xyz', 'charlie', 2020, 'abc']

列表还有sort()可以进行排序,reverse()可以进行将列表逆序输出等方法,这里不在赘述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章