Python基础编程——列表的基本操作

liftword5个月前 (01-29)技术文章55

上一节以列表为例,介绍了Python序列的通用操作方法,主要包括:索引、切片、加法、乘法、成员资格,本节将介绍列表的其他一些特有操作。

list函数

list函数可以将一个可迭代对象转换成列表,这里的可迭代对象包括字符串、元组、字典等,后面将详解介绍可迭代对象。

下面是将一个字符串转换成列表的形式的小程序string_to_list.py,具体如下所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

string = '中国加油!武汉加油!'
string_to_list = list(string)
print(string_to_list)

string = 'Hello, World!'
string_to_list = list(string)
print(string_to_list)

程序执行结果如下所示:
['中', '国', '加', '油', '!', '武', '汉', '加', '油', '!']
['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

从上面的程序执行结果可以看出,list函数将原来字符串序列中的每一个字符转换成列表对应的每一个元素。

如果需要将列表转换成字符串需要如何处理呢,可以使用前面介绍的join函数,join函数以指定的字符串为分隔符将序列(当然包括列表)中的每一个元素拼接成一个字符串并返回这个字符串。如下面的程序list_to_string.py所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

string = '中国加油!武汉加油!'
string_to_list = list(string)
list_to_string = ''.join(string_to_list)
print(list_to_string)

string = 'Hello, World!'
string_to_list = list(string)
list_to_string = ''.join(string_to_list)
print(list_to_string)

程序执行结果如下所示:
中国加油!武汉加油!
Hello, World!

从string_to_list.py的执行结果可以知道string_to_list变量存储的是一个列表,当我们以''为分隔符使用join函数拼接后,我们可以得到一个新的字符串,即将列表中的每一个元素拼接成了一个字符串。

修改列表

由于列表是可变序列,除了前面介绍的序列的通用操作,还可以修改列表中的元素值。通过使用索引值修改列表中的元素值,其语法为:list[index] = new_value,具体如下modify_list.py程序所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
city_names = ['Chengdu', 'Chongqing', 'Xian', 'Kunming']

# 通过索引修改列表的元素
city_names[1] = 'Beijing'
city_names[3] = 'Guangzhou'

print(city_names)

程序执行结果如下所示:
city_names = ['Chengdu', 'Beijing', 'Xian', 'Guangzhou']

从上面程序的执行结果可以看出,可以通过列表的索引修改其元素值。但是如果索引不存在时,我们修改其对应的元素会出现什么情况呢?如下所示:


从上图可以看出解释器会报IndexError——索引错误,因为我们指定的索引在列表中不存在而直接想要修改其对应的值,这显然是不可能的。

删除元素

想要从列表中将指定的元素删除也是很容易的,可以使用关键字del将指定索引对应的元素从列表中删除,其语法为:del list[index],具体如del_list_ele.py程序所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

city_names = ['Chengdu', 'Chongqing', 'Xian', 'Kunming']

del city_names[0]
del city_names[-1]

print('city_names = {}'.format(city_names))

程序执行结果如下所示:
city_names = ['Chongqing', 'Xian']

从上面程序执行的结果中可以看出,索引为0对应的'Chengdu'和索引为-1对应的'Kunming'从列表中删除了,在使用del时需要注意,当删除一个元素后,列表中位于该元素后面的所有元素对应的索引值都将发生变化。

PS:del关键字不仅仅可以删除列表中的元素,甚至变量、函数等都可以使用del关键字进行删除。

给切片赋值

前一节介绍序列的通用操作时,介绍了使用起始索引和结束索引以及步长来对列表进行切片,我们也可以对切片进行赋值,具体如下slice_list_assign.py所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

city_names = ['Chengdu', 'Chongqing', 'Xian', 'Kunming']

city_names[0:2] = ['Beijing', 'Shanghai']

print('city_names = {}'.format(city_names))

程序执行结果如下所示:
city_names = ['Beijing', 'Shanghai', 'Xian', 'Kunming']

使用切片不仅可以修改列表,还可以实现列表元素的删除、新增等操作,具体如下slice_list.py程序所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

city_names = ['Chengdu', 'Chongqing', 'Xian', 'Kunming']

# 通过切片删除列表中的元素
city_names[1:2] = []
print('city_names = {}'.format(city_names))

# 通过切片在列表中插入元素
city_names[0:1] = ['Chengdu', 'Beijing']

print('city_names = {}'.format(city_names))

程序执行结果如下所示:
city_names = ['Chengdu', 'Xian', 'Kunming']
city_names = ['Chengdu', 'Beijing', 'Xian', 'Kunming']

从上面程序执行的结果可以看出,先将city_names列表中的'Chongqing'元素从列表中删除,然后再在'Chengdu'元素后面插入了'Beijing'元素。需要注意的是,在这里可以加入多个元素,取决于实际的需求。

上面介绍的是默认步长为1时的切片赋值,大家可以试试当步长不为1时的切片赋值。

总结:

本节主要介绍了如下内容:

  1. list函数——其实这里的list不是一个函数,而是一个类,只是通常叫为函数。就像Java的通过类创建对象一样,我们使用list函数传入一个参数,然后创建一个list类的对象。
  2. 修改列表元素——通过索引修改列表的元素,list[index] = newValue。
  3. 删除列表元素——使用del关键字删除列表中的元素,del还可以删除变量、函数、对象等。
  4. 列表切片赋值——不仅可以给切片赋值,还可以通过切片删除、新增列表元素。

下一节将会介绍列表的一些常用的重要的方法,例如:append()方法,clear()方法等等。

如果有需要文中小程序的可以私信我哟!

欢迎大家关注、转发、订阅、点评!



相关文章

Python 中删除列表元素的三种方法

列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的。那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下。一共有三种方法,分别是 remove,pop 和 del...

删除 Python 列表中的最后一个元素

列表是 Python 中一种重要的数据结构,在某些情况下,可能需要从列表中删除最后一个元素。在本文中,我们将介绍删除列表中最后一个元素的多种方法。方法 1:使用 pop() 方法删除列表中最后一个元素...

Python精讲:在Python中添加、修改、删除和更新字典元素详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中添加、修改和删除字典元素详解》。本知识点主要内容有:在Python中添加字典元素、在Python中修改字典元素、在Pyt...

Python列表可变性前置知识2(python的可变数据类型有哪些)

寒假打卡第十一天,当前mit6.100L进度(11/26)今日主题Aliasing, Cloning(别名和克隆)先总结以下两点,明天会整理一下可变性的陷阱(下次一定):1、L1=L[:]和L1=L的...

在 Python 中从列表中删除换行符的多种方法

在这里,我们将学习使用不同的方法从 python 的列表中删除换行符。换行符使用特殊字符“\n”指定。每当我们使用字符“\n”时,它都会自动生成一个新行。在 Python 中,有许多内置函数可用于从列...

python中元组,列表,字典,集合删除项目方式的归纳

九三,君子终日乾乾,夕惕若,厉无咎。在使用python过程中会经常遇到这四种集合数据类型,今天就对这四种集合数据类型中删除项目的操作做个总结性的归纳。列表(List)是一种有序和可更改的集合。允许重复...