Python基础第五讲:Python 列表的七大操作有哪些?

i小码哥

共 4766字,需浏览 10分钟

 · 2021-04-01

原创小白系列第 6 
小白:小码哥,通过上一篇文章刘德华告诉你:什么是列表?,我已经知道了什么是列表。我该怎么用它呢?


小码哥:今天我们一起聊一下列表的七大操作。在工作中,这些操作经常被用到。


01
如何判断什么是列表呢?


在Python中,type()函数被用来查看变量的类型。


只有知道了变量的类型才能对其进行相应的操作,因为不同的数据类型有不同的操作,比如字符串有自己独特的一系列操作。


同样,我们使用该函数查看列表在Python中的类型表示为<class 'list'>,具体如下:


例子

# 查看变量的类型

print('names_python_pc的数据类型是:',type(names_python_pc))

 

names_python_pc的数据类型是:<class 'list'>


在实际项目中,变量的各种类型都会用到。


当看到<class 'list'>就表示是列表,我们才可以对其进行列表的各种操作。




02
列表的七大操作


列表常见的操作有访问元素、添加元素、修改元素、删除元素以及列表排序等等。


1.访问列表元素:


列表是有序的,每一个元素都自动带有一个位置信息,也就是索引


在编程语言中,无论Python还是其他的语言,索引都是从0开始,而不是1。


第0个索引对应的元素就是第一个元素,以此类推,比如在列表names_python_pc中,第0个索引对应的列表元素就是’陈升‘;第三个索引,也就是最后一个元素对应的是‘TFboys’,具体如图所示。


访问列表元素的方法是根据索引访问,只需要指出索引号即可。

 

例子

# 根据索引访问列表元素,并且赋值给变量three_str

three_str = names_python_pc[2]

# 直接打印(print)列表元素或根据变量打印,项目中经常用到

print(names_python_pc[2])

print('列表中第三个元素是:{}'.format(three_str))

 

杨幂

列表中第三个元素是:杨幂

 

访问列表中最后一个元素的方法有两个:第一个是通过索引号[-1]来获取。


这个特殊的语法特别有用,尤其在项目中,不知道一个excel文件具体有多少列,但是我们记得最后一列是想要获取的信息,此时就可以使用该方法;



第二个:明确知道列表有多少列,使用最后一列的索引即可。


例子

# 两种方法访问最后一个元素

names_python_pc[-1]

print('使用第一种方法,获得列表最后一个元素是{}'.format(names_python_pc[-1]))

names_python_pc[3]

print('使用第二种方法,获得列表最后一个元素是{}'.format(names_python_pc[3]))

 

使用第一种方法,获得列表最后一个元素是 TFboys

使用第二种方法,获得列表最后一个元素是 TFboys


2.添加列表元素:


列表是可变的。在列表中添加元素分为两种情况:

(1)第一种:在指定位置插入一个元素,用到的方法是:

# insert方法 根据索引位置插入元素

insert(index,x)

index 是准备插入到其前面的那个元素的索引; x为需要插入的元素。

 

例子

print('原来的成员列表:{}'.format(names_python_pc))

names_python_pc.insert(0,'魏璎珞')

print('插入新的成员以后的列表:{}'.format(names_python_pc))

 

原来的成员列表:['陈升', '刘德华', '杨幂', 'TFboys']

插入新的成员以后的列表:['魏璎珞', '陈升', '刘德华', '杨幂', 'TFboys']

 

(2)第二种:在列表的末位添加元素,用到的方法是:


# append(x)  x为需要插入的元素,并且是插入到列表的最后

例子

# append(x)

print('原来的成员列表:{}'.format(names_python_pc))

names_python_pc.append('傅恒')

print('插入新的成员以后的列表:{}'.format(names_python_pc))

 

原来的成员列表:['魏璎珞', '陈升', '刘德华', '杨幂', 'TFboys']

插入新的成员以后的列表:['魏璎珞', '陈升', '刘德华', '杨幂', 'TFboys', '傅恒']


这两种方法相比。第一种比第二种的计算代价更高,因为第一种方法的插入位置不确定,之后的所有元素不得不在内部自己移动位置。


而第二种方法是在末尾插入,相对比较快。




修改列表元素:


修改列表元素与访问列表元素一样,根据索引即可修改元素的值。

例子

# 修改第三个元素的值

names_python_pc[2] = '扶摇'

print('修改后的成员列表:{}'.format(names_python_pc))

 

修改后的成员列表:['魏璎珞', '陈升', '扶摇', '杨幂', 'TFboys', '傅恒']


4.删除列表元素:


在项目中,我们经常需要删除列表中的元素。


python可以根据索引值删除,也可以根据元素值删除。如果我们记得要删除的元素的位置,则可以根据索引值删除,用到的是语句del()或者方法pop


语句del(index) 根据索引值删除元素,并且删除后不可以赋值给任何变量;方法pop()删除列表尾部的元素,或者pop(index)感觉索引值删除,但是pop方法删除后的元素可以赋值给变量。这就是两者的最大区别。


例子

# 删除列表中的魏璎珞

del names_python_pc[0]

print('del语句删除列表中的魏璎珞后的列表是{}'.format(names_python_pc))

 

# POP方法删除列表中的傅恒

delete_name = names_python_pc.pop()

print(f'pop方法删除的元素是{delete_name}')

 

# 根据位置删除 扶摇

delete_name_index = names_python_pc.pop(1)

print(f'pop根据索引删除的元素值是{delete_name_index}')

 

del语句删除列表中的魏璎珞后的列表是['陈升', '扶摇', '杨幂', 'TFboys', '傅恒']

pop方法删除的元素是 傅恒

pop根据索引删除元素值是 扶摇


如何我们不记得要删除的列表元素的位置,只是记得值,可以采用的方法是remove()。如果列表中有多个类似的值,则remove()方法一次只能删除一个。


语法:

列表名.remove('')

例子

print("原来的列表是:",names_python_pc)

# 删除列表中的TFboys

names_python_pc.remove('TFboys')

print(f'删除后的列表是{names_python_pc}')

 

原来的列表是: ['陈升', '杨幂', 'TFboys']

删除后的列表是['陈升', '杨幂']

 


5.列表排序


很多时候,我们需要对列表中的元素进行排序,然后进行运算。列表排序分为永久性排序和临时性排序。永久性排序是真正修改列表元素的排列顺序,用到的方法是sort(),默认为升序。如果是降序,添加参数 reverse=True。另外sort()中有一些选项很有用,比如使用字符串的长度排序;而临时性排序是不改变原来的排列顺序,用到的函数是sorted()。它返回一个新建的已排序列表,原来的列表顺序不受影响。


# sort() 根据长度排序names_python_pc = ['Baby', 'Andy Liu', 'We', 'TFboys']print('原来的顺序是:',names_python_pc)names_python_pc.sort(key = len)print('根据元素长度排序后的结果是:',names_python_pc)

# 临时排序temp_list = sorted(list_1)print('临时排序', temp_list)print('原来的列表元素顺序',list_1)

 

临时排序 ['a', 'b', 'd', 'e', 'f', 'f', 'g', 'p']

原来的列表元素顺序 ['p', 'g', 'f', 'f', 'e', 'd', 'b', 'a']

 

6.判断一个元素是否在列表中


 在Python编程中,我们经常使用 in 和not in 来判断一个元素是否在列表中。如果满足则返回True,否则返回False。


例子

# 使用 in 判断一个元素是否在列表中names_python_pc = ['陈升','刘德华','杨幂','TFboys']in_e = '刘德华' in names_python_pcprint('使用 in 判断一个元素是否在列表中', in_e)# 使用 not in 判断一个元素不在列表中not_in_e = 'fuyao' not in names_python_pcprint('使用 not in 判断一个元素不在列表中',not_in_e)

 

使用 in 判断一个元素是否在列表中 True

使用 not in 判断一个元素不在列表中 True

 

7 在数据分析中,我们经常需要把两个列表拼接成一个列表。


在Python中,我们使用加号(+)拼接两个已经存在的列表为一个新的列表;


也可以使用extend方法向已存在的列表中添加另一个列表。


注意第一种方法相对代价高,推荐使用extend方法拼接两个存在的列表。


# 使用 + 连接两个列表names_python_pc = ['陈升','刘德华','杨幂','TFboys']number = [2, 5, 7, 8]linked_list = names_python_pc + numberprint('连接后的列表是:{}'.format(linked_list))# 使用extend方法向以存在的列表添加多个元素linked_list_2 = names_python_pc.extend(number)print('使用extend方法添加列表元素:{}'.format(names_python_pclinked_list))# 使用 * 重复列表元素number = number * 2print('使用*重复列表元素:',number)

 

连接后的列表是:['陈升', '刘德华', '杨幂', 'TFboys', 2, 5, 7, 8]

使用extend方法添加列表元素:['陈升', '刘德华', '杨幂', 'TFboys', 2, 5, 7, 8]

使用*重复列表元素:[2, 5, 7, 8, 2, 5, 7, 8]

以上内容摘自《零基础轻松学 Python》


浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报