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

liftword3个月前 (01-29)技术文章33

上一节以列表为例,介绍了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列表可变性前置知识2(python的可变数据类型有哪些)

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

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

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

玩转Python—列表使用教程(python列表讲解)

上一讲给大家介绍了Python的列表,今天继续给大家介绍Python中列表的使用。1.列表的元素的赋值#实例 >>>num=[1,2,3,4,5,6,7,7,8,8,9] >...

Python之列表list(python中list怎么用)

Python 内置了一种名为列表(list)的数据类型。list 是一种有序的集合,具备随时添加和删除其中元素的便利性。例如,若要列出班里所有同学的名字,就可以借助 list 来表示:classmat...

年近半百自学Python之列表元素的排序操作

列表元素的排序操作常见方式有两种:●调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True进行降序排序。●调用内置函数sorted(),可以指定reve...