实际开发中,经常需要对Python列表进行更新,包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。
使用+运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用+进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。
请看下面的演示:
language = ["Python", "C++", "Java"]
birthday = [1991, 1998, 1995]
info = language + birthday
print("language =", language)
print("birthday =", birthday)
print("info =", info)123456复制代码类型:[java]
运行结果:
language = ['Python', 'C++', 'Java']
birthday = [1991, 1998, 1995]
info = ['Python', 'C++', 'Java', 1991, 1998, 1995]123复制代码类型:[java]
从运行结果可以发现,使用+会生成一个新的列表,原有的列表不会被改变。
+更多的是用来拼接列表,而且执行效率并不高,如果想在列表中插入元素,应该使用下面几个专门的方法。
Python append()方法添加元素
append()方法用于在列表的末尾追加元素,该方法的语法格式如下:
listname.append(obj)1复制代码类型:[python]
其中,listname表示要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。
请看下面的演示:
l = ['Python', 'C++', 'Java']
#追加元素
l.append('PHP')
print(l)
#追加元组,整个元组被当成一个元素
t = ('JavaScript', 'C#', 'Go')
l.append(t)
print(l)
#追加列表,整个列表也被当成一个元素
l.append(['Ruby', 'SQL'])
print(l)1234567891011复制代码类型:[java]
运行结果为:
['Python', 'C++', 'Java', 'PHP']
['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go')]
['Python', 'C++', 'Java', 'PHP', ('JavaScript', 'C#', 'Go'), ['Ruby', 'SQL']]123复制代码类型:[python]
可以看到,当给append()方法传递列表或者元组时,此方法会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。
Python extend()方法添加元素
extend()和append()的不同之处在于:extend()不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。
extend()方法的语法格式如下:
listname.extend(obj)1复制代码类型:[python]
其中,listname指的是要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。
请看下面的演示:
l = ['Python', 'C++', 'Java']
#追加元素
l.extend('C')
print(l)
#追加元组,元祖被拆分成多个元素
t = ('JavaScript', 'C#', 'Go')
l.extend(t)
print(l)
#追加列表,列表也被拆分成多个元素
l.extend(['Ruby', 'SQL'])
print(l)1234567891011复制代码类型:[python]
运行结果:
['Python', 'C++', 'Java', 'C']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go', 'Ruby', 'SQL']123复制代码类型:[python]
Python insert()方法插入元素
append()和extend()方法只能在列表末尾插入元素,如果希望在列表中间某个位置插入元素,那么可以使用insert()方法。
insert()的语法格式如下:
listname.insert(index , obj)1复制代码类型:[python]
其中,index表示指定位置的索引值。insert()会将obj插入到listname列表第index个元素的位置。
当插入列表或者元祖时,insert()也会将它们视为一个整体,作为一个元素插入到列表中,这一点和append()是一样的。
请看下面的演示代码:
l = ['Python', 'C++', 'Java']
#插入元素
l.insert(1, 'C')
print(l)
#插入元组,整个元祖被当成一个元素
t = ('C#', 'Go')
l.insert(2, t)
print(l)
#插入列表,整个列表被当成一个元素
l.insert(3, ['Ruby', 'SQL'])
print(l)
#插入字符串,整个字符串被当成一个元素
l.insert(0, "//c.biancheng.net")
print(l)1234567891011121314复制代码类型:[python]
输出结果为:
['Python', 'C', 'C++', 'Java']
['Python', 'C', ('C#', 'Go'), 'C++', 'Java']
['Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']
['//c.biancheng.net', 'Python', 'C', ('C#', 'Go'), ['Ruby', 'SQL'], 'C++', 'Java']1234复制代码类型:[python]
提示,insert()主要用来在列表的中间位置插入元素,如果你仅仅希望在列表的末尾追加元素,那我更建议使用append()和extend()。