Python学习日记 Day3初识列表

今天是2020年2月12日,阴转多云,9~15℃

有一点厌学,但还是打开了博客,想逼自己学点东西。

一、列表简介

列表由一系列按特定顺序排序的元素组成,是线性表的一种表示。不同于其它语言中的数组,Python在同一列表中可以储存不同类型的元素,类型既可以是Python标准数据类型,也可以是自定义类型。
在Python中,使用方括号( [] )来表示列表,并用逗号来分割其中的元素。例如一个简单列表:

list1 = [1,2.0,"3",[4]]

访问列表元素的操作和其它语言中的数组使用方法类似,使用索引( [index] )就可以访问对应元素。

print(list1[2])		#Output:3

索引从0开始,这与许多其它语言相同。

此外,Python允许用户使用负索引来访问倒数元素。

print(list1[-1])	#Output:[4]

-index表示倒数第index个元素。

使用 [index1:index2] 可以访问该列表的子列表。

list2 = list1[0:2]
print(list2)		#Output:[1, 2.0]

子列表中的元素为原列表索引从 index1 到 index2 - 1 的元素。

二、列表的简单操作

Python为列表提供了很多简单快捷的操作方式,下面是一些简单的操作:

1、修改列表元素

要修改列表元素,可指定列表名和索引,并赋予元素新值。

names = ["Alex","Blair","Chris"]	#本部分均以该列表为初始列表进行操作演示
names[1] = "Black"
print(names)		#Output:['Alex', 'Black', 'Chris']

2、添加列表元素

Python列表提供了两个添加元素的方法。

● 在列表末尾添加元素:append方法

使用append方法可将元素加入列表末尾。

#list_name.append(object)
names.append("Dock")
print(names)		#Output:['Alex', 'Blair', 'Chris', 'Dock']
● 在列表中插入元素:insert方法

使用insert方法可将元素插入列表的任何位置。

#list_name.insert(index , object)
names.insert(2,"Dock")
print(names)		#Output:['Alex', 'Blair', 'Dock', 'Chris']

insert方法将把元素插入列表的index位置,再将后面的元素右移。

3、删除列表元素

Python列表提供了两个方法和一个关键字用于删除元素。

● del关键字语句

使用del关键字可删除已知位置的元素。

#del list_name[index]
del names[1]
print(names)		#Output:['Alex', 'Chris']
● 弹出元素:pop方法

将列表看作一个栈,使用pop方法可将末尾元素弹出列表。

#list_name.pop()
names.pop()
print(names)		#Output:['Alex', 'Blair']

pop方法具有重载方法,需要提供一个索引参数,可将任意已知索引的元素弹出列表。

#list_name.pop(index)
names.pop(0)
print(names)		#Output:['Blair', 'Chris']

除了能将元素弹出列表,达到与del关键字相同的效果,pop方法还具有一个返回值,返回被弹出的元素值。

name = names.pop()
print(name)			#Output:Chris
● 查找值删除:remove方法

当不知道想要删除的元素索引,但知道元素的值时,可以通过remove方法删除元素。

#list_name.remove(value)
names.remove("Alex")
print(names)		#Output:['Blair', 'Chris']

如果通过变量删除元素,还可在元素从列表中被删除后再通过变量使用元素。

name = "Alex"
names.remove(name)
print(name)		#Output:Alex

remove方法只能删除第一个值匹配的元素。

4、列表排序

列表中的元素若不经过排序,顺序通常是无法预测的。有时我们需要初始顺序,但有时有希望列表按特定顺序排列。Python提供了几种对列表进行排序的方式。

● 永久性排序:sort方法

sort方法可以对列表进行排序,但这一过程是永久的,一旦进行可能就无法回到初始状态。
sort方法有两个可缺省的参数key和reverse。key参数需要一个用于排序的元素;reverse参数需要一个布尔值以决定升降序排序。

#list_name.sort(key = sort_key , reverse = bool_value)
names = ["Harry","Bulk","Jack","Parker","Michael"]		#排序中均使用该列表作为初始列表
names.sort()	#无参时默认参数为(key = none , reverse = False) 		根据字符串大小升序
print(names)		#Output:['Bulk', 'Harry', 'Jack', 'Michael', 'Parker']
names.sort(reverse = True)	#省略参数key时key = none 	根据字符串大小降序
print(names)		#Output:['Parker', 'Michael', 'Jack', 'Harry', 'Bulk']
names.sort(key = len)	#省略参数reverse时reverse = False 	根据字符串长度升序
print(names)		#Output:['Jack', 'Bulk', 'Harry', 'Parker', 'Michael']

字符串大小比较和C中strcmp函数和C++中字符串’ < '运算符重载相同,均逐位比较字符的ASCII码,中文比较Unicode码。
由第三个输出可以发现,当字符串长度相同时,保持原有顺序。
sort方法还有一个参数cmp,用于指定比较的方式。

● 暂时排序:sorted函数

sorted方法将返回一个排序后的列表,但不改变列表原有的排序。

#sorted(list_name)
print(sorted(names))		#Output:['Bulk', 'Harry', 'Jack', 'Michael', 'Parker']
print(names)				#Output:['Harry', 'Bulk', 'Jack', 'Parker', 'Michael']

排序后的列表也可保存在其它变量中。

sorted函数同sort方法一样有cmp , key , reverse三个缺省参数。

● 列表反置:reverse方法

reverse方法可以将列表反置(反转),即按原有顺序从尾到头排序。

#list_name.reverse()
names.reverse()
print(names)			#Output:['Michael', 'Parker', 'Jack', 'Bulk', 'Harry']
● 获取列表长度:len函数

len函数能获取并返回列表的长度(元素个数)。此外,len函数还可用于其它数据类型,如字符串。

#len(object)
print(len(names))		#Output:5

正直的人遵守着正直的法则,却没有人与他一起遵守,这就只能给恶人带来好处,让正直的人遭遇不幸。

发布了17 篇原创文章 · 获赞 1 · 访问量 497

猜你喜欢

转载自blog.csdn.net/weixin_44712386/article/details/104277340