《 Python List列表全实例详解系列(三)》
——列表添加元素(4种方法)
接上一篇:《 Python List 列表全实例详解(二)》__访问列表元素(索引和切片)列表反转(6种方法)
本篇目录:
五、向list 列表添加元素(4种方法)
append()函数将在列表尾部传入一个元素:list.append(1)。
extend()函数可以将列表1和列表2拼接在一起:list1.extend(list2)。
insert()函数可以在列表中的指定位置插入一个元素:list.insert(位置,元素)。
注意:
使用append()和insert()时,一次只能添加一个元素;
使用extend()时是将列表拼接在另一个列表尾部。
(5.1)、append() 方法添加元素 | |
append() 方法添加元素 append() 方法用于在列表的末尾追加元素 | |
语 法 | listname.append(obj) |
参 数 | listname 表示要添加元素的列表; obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。 |
注 意 | append() 方法传递列表或者元组时,会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。 |
返 回 值 | 没有返回值 |
知识拓展 | extend() 和 append() 的不同之处在于: extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。 append() 方法传递列表或者元组时,会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。 append是整建制地追加,extend是个体化扩编。 extend() 和 append() 的共同点在于: 都是原地修改列表。没有返回值,不能赋值给某个变量。 list.append(x)等效于 a[len(a):]=[x]。这也相当于告诉我们另外一种追加元素的方法,并且两种方法等效。 |
实 例 | |
| |
代 码 | #在小动物列表里增加小松鼠 mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "小灰兔", "小鸟"] print(mlist) mlist.append("小松鼠") print(mlist) |
运行结果 | ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟'] ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟', '小松鼠'] |
代 码 | #在数字列表里增加数字6999 mlist= [32,51,6,31,43,423,34] print(mlist) mlist.append("6999") print(mlist) |
运行结果 | [32, 51, 6, 31, 43, 423, 34] [32, 51, 6, 31, 43, 423, 34, '6999'] |
代 码 | #在列表里追加元组,整个元组会被当成一个元素添加到列表里 print(mlist) mlist.append(('香蕉','苹果','橘子')) print(mlist) |
运行结果 | ['萤火明晰双眼', '辨分真与假', 0, [8, 6], '逆境清醒'] ['萤火明晰双眼', '辨分真与假', 0, [8, 6], '逆境清醒', ('香蕉', '苹果', '橘子')] |
代 码 | #在列表里追加列表,整个追加列表也被当成一个元素添加到列表里 mlist=[[2,9],[7,0],[1,8],[3,4],[1,6]] print(mlist) mlist.append([6,9]) print(mlist) |
运行结果 | [[2, 9], [7, 0], [1, 8], [3, 4], [1, 6]] [[2, 9], [7, 0], [1, 8], [3, 4], [1, 6], [6, 9]] |
代 码 | #用切片形式添加元素 mlist= [3,8,5,1,8] mlist[5:]=[131] print(mlist) |
运行结果 | [3, 8, 5, 1, 8, 131] |
代 码 | # list.append(x)等效于 list[len(list):]=[x] mlist= [3,8,5,1,8] mlist[len(mlist):]=[131] print(mlist) |
运行结果 | [3, 8, 5, 1, 8, 131] |
代 码 | # mlist2 = mlist1是浅复制,往mlist1列表里添加删除元素,mlist2列表里的元素也会跟着变化 。mlist1 = [1,2,3,[4,5],6,7] mlist2 = mlist1 mlist1.append(8) print(mlist1) print(mlist2) mlist2[3].remove(4) print(mlist1) print(mlist2) |
运行结果 | [1, 2, 3, [4, 5], 6, 7, 8] [1, 2, 3, [4, 5], 6, 7, 8] [1, 2, 3, [5], 6, 7, 8] [1, 2, 3, [5], 6, 7, 8] |
代 码 | # mlist2 = mlist1[:],父对象进行了深拷贝,不会随mlist1的修改而修改;子对象是浅拷贝所以会随 mlist1 的修改而修改。 mlist1 = [1,2,3,[4,5],6,7] mlist2 = mlist1[:] mlist1.append(8) print(mlist1) print(mlist2) mlist1[3].remove(4) print(mlist1) print(mlist2) |
运行结果 | [1, 2, 3, [4, 5], 6, 7, 8] [1, 2, 3, [4, 5], 6, 7] [1, 2, 3, [5], 6, 7, 8] [1, 2, 3, [5], 6, 7] |
代 码 | #分别从两个列表中取出所有的元素,再放入新列表mlist3中 mlist3=[] mlist1 =[1,2,3,4,5] mlist2 =[6,7,8,9,10] for i in mlist1: mlist3.append(i) for i in mlist2: mlist3.append(i) print(mlist3) |
运行结果 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
#a和b是两个长度相同的列表变量,列表a为[3, 6, 9]己给定,键盘输入列表b, 计算a中元素与b中对应元素的和形成新的列表c,在屏幕上输出。例如:键盘输入列表b为[1, 2, 3], 屏幕输出计算结果为[4, 8, 12] | |
代 码 | a = [3,6,9] b =eval(input()) #例如:[1,2,3] c = [] for i in range(3): c.append(a[i]+b[i]) print(c) |
运行结果 | 键盘输入:[1,2,3] 屏幕输出:[4, 8, 12] |
# 以123为随机数种子,随机生成10个在1 (含)到999 (含)之间的随机数,将这些随机数组成一个列表。 | |
代 码 | import random random.seed(123) mlist=[] for i in range(10): #print(random.randint(1,1000), end=",") mlist.append(random.randint(1,1000)) print(mlist) |
运行结果 | [54, 275, 90, 788, 418, 273, 111, 859, 923, 896] |
# 获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始数值,b为差,c为数值的数量,产生一个递增的等差数列,将这个数列以列表格式输出。 | |
代 码 | a, b, c = eval(input()) #输入格式:1,2,3以逗号分隔 mlist = [] for i in range(c): mlist.append(a+b*i) print(mlist) |
运行结果 | 键盘输入:1,6,5 屏幕输出:[1, 7, 13, 19, 25] |
#获得用户输入的以逗号分隔的三个数字,记为a、b、c,以a为起始数值,b为前后相邻数的比值,c为数列长度,产生一个等比数列,将这个数列以逗号分隔的形式输出,最后一个元素输出后无逗号。 | |
代 码 | a, b, c = eval(input())#输入格式:1,2,3以逗号分隔 mlist = [] for i in range(c): mlist.append(str(a*(b**i))) print(",".join(mlist)) |
运行结果 | 键盘输入:1,3,6 屏幕输出:1,3,9,27,81,243 |
(5.2)、extend() 方法添加元素 | |
extend() 方法添加元素 | |
语 法 | listname.extend(obj) |
参 数 | listname 指的是要添加元素的列表; obj 表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。 |
注 意 | 1、不能直接用extend向列表追加int类型的数值,会报错。 2、extend函数添加的对象必须是可迭代序列。字符串和列表都是可迭代序列,但数字不是。 3、用extend向列表追加int类型的数值,将int类型做成列表,就可以加进去了 4、追加元组列表等,元组列表被拆分成多个元素 5、extend()可以将列表1和列表2拼接在一起:list1.extend(list2)。 |
返 回 值 | 没有返回值 |
知识拓展 | 函数append()和extend(),其共同点: 都是原地修改列表。没有回值,不能赋值给某个变量。 函数append()和extend(),不同点: extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。 append() 方法传递列表或者元组时,会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。 append是整建制地追加,extend是个体化扩编。 |
实 例 | |
| |
代 码 | # extend() 不会把字符串视为一个整体,而是把它们包含的元素逐个添加到列表中。 mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "小灰兔", "小鸟"] print(mlist) mlist.extend("小松鼠") print(mlist) |
运行结果 | ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟'] ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟', '小', '松', '鼠'] |
代 码 | #在数字列表里增加数字6999 mlist= [32,51,6,31,43,423,34] print(mlist) mlist.extend(6999) print(mlist) |
运行结果 | #不能直接用extend向列表追加int类型的数值,会报错。 [32, 51, 6, 31, 43, 423, 34] Traceback (most recent call last): 。。。 mlist.extend(6999) TypeError: 'int' object is not iterable |
代 码 | #用extend向列表追加int类型的数值,将int类型做成列表,就可以加进去了 mlist= [32,51,6,31,43,423,34] print(mlist) mlist.extend([6999]) print(mlist) |
运行结果 | [32, 51, 6, 31, 43, 423, 34] [32, 51, 6, 31, 43, 423, 34, 6999] |
代 码 | #用extend向列表追加str类型的数值6999,"6999"会被拆分成'6', '9', '9', '9'添加到列表里 mlist= [32,51,6,31,43,423,34] print(mlist) mlist.extend("6999") print(mlist) |
运行结果 | [32, 51, 6, 31, 43, 423, 34] [32, 51, 6, 31, 43, 423, 34, '6', '9', '9', '9'] |
代 码 | #追加元组,元组被拆分成多个元素 mlist =["萤火明晰双眼","辨分真与假",0,[8,6],'逆境清醒'] print(mlist) mlist.extend(('香蕉','苹果','橘子')) print(mlist) |
运行结果 | ['萤火明晰双眼', '辨分真与假', 0, [8, 6], '逆境清醒'] ['萤火明晰双眼', '辨分真与假', 0, [8, 6], '逆境清醒', '香蕉', '苹果', '橘子'] |
代 码 | #追加列表,列表也被拆分成多个元素 mlist=[[2,9],[7,0],[1,8],[3,4],[1,6]] print(mlist) mlist.extend([6,9]) print(mlist) |
运行结果 | [[2, 9], [7, 0], [1, 8], [3, 4], [1, 6]] [[2, 9], [7, 0], [1, 8], [3, 4], [1, 6], 6, 9] |
代 码 | mlist = ["愿星光为你","漆黑里指路"] fh = ["!"] mlist.extend(fh) mlist.extend("!") mlist.extend(["!"]) print(mlist) |
运行结果 | ['愿星光为你', '漆黑里指路', '!', '!', '!'] |
代 码 | mlist1=['愿星光为你','漆黑里指路'] mlist2=['萤火明晰双眼','辨分真与假'] print(mlist1.extend(mlist2)) |
运行结果 | #extend()没有返回值,不能赋值给某个变量。 None |
代 码 | mlist1=['愿星光为你','漆黑里指路'] mlist2=['萤火明晰双眼','辨分真与假'] m=mlist1.extend(mlist2) print(m) |
运行结果 | #extend()没有返回值,不能赋值给某个变量。 None |
代 码 | #extend()可以将列表1和列表2拼接在一起:list1.extend(list2)。 mlist1=['愿星光为你','漆黑里指路'] mlist2=['萤火明晰双眼','辨分真与假'] mlist1.extend(mlist2) print(mlist1) |
运行结果 | ['愿星光为你', '漆黑里指路', '萤火明晰双眼', '辨分真与假'] |
代 码 | mlist= ["地球之所以是圆的", "是因为上天想让那些因意外而分开的人有机会能够重新相遇"] mlist.extend(['在不久后的某年某月的某一天。。。']) print(mlist) |
运行结果 | ['地球之所以是圆的', '是因为上天想让那些因意外而分开的人有机会能够重新相遇', '在不久后的某年某月的某一天。。。'] |
代 码 | |
运行结果 | |
(5.3)、insert() 方法插入元素 | |
语 法 | listname.insert(index , obj) |
参 数 | insert() 会将 obj 插入到 listname 列表第 index 个元素的位置。 index 表示指定位置的索引值。 |
注 意 | 1、当插入列表或者元组时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append() 是一样的。 2、注意,索引是从0开始的。如果遇到那个i已经超过了最大索引值,会自动将所要插入的元素放到列表的尾部,即追加。 3、使用insert把新元素加在列表尾,用-1来指定下标是不行的,需要使用大于等于列表长度的下标,只要insert的第一个参数是超过最大下标的值len(listname),都默认插入列表的尾部。 |
返 回 值 | 没有返回值 |
知识拓展 | insert() 主要用来 列表的中间位置插入元素,如果你仅仅希望在列表的末尾追加元素,那更建议使用 append() 和 extend()。 1:index=0时,insert() 从头部插入obj。 |
实 例 | |
| |
代 码 | #插入元素 mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "小灰兔", "小鸟"] print(mlist) mlist.insert(1,"小松鼠") print(mlist) |
运行结果 | ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟'] ['小猫咪', '小松鼠', '小白兔', '小青蛙', '小狗狗', '小灰兔', '小鸟'] |
代 码 | #插入元组,整个元组被当成一个元素 mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "小灰兔"] print(mlist) mlist.insert(1,('小松鼠', '小鸟')) print(mlist) |
运行结果 | ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔'] ['小猫咪', ('小松鼠', '小鸟'), '小白兔', '小青蛙', '小狗狗', '小灰兔'] |
代 码 | #插入列表,整个列表被当成一个元素 mlist= ["小猫咪", "小白兔", "小青蛙", "小狗狗", "小灰兔"] print(mlist) mlist.insert(2,['小海豚', '小鱼']) print(mlist) |
运行结果 | ['小猫咪', '小白兔', '小青蛙', '小狗狗', '小灰兔'] ['小猫咪', '小白兔', ['小海豚', '小鱼'], '小青蛙', '小狗狗', '小灰兔'] |
代 码 | #插入字符串,整个字符串被当成一个元素 mlist=['萤火明晰双眼','辨分真与假'] print(mlist) mlist.insert(0, "逆境清醒") print(mlist) |
运行结果 | ['萤火明晰双眼', '辨分真与假'] ['萤火明晰双眼', '辨分真与假', '逆境清醒'] |
#在原来的mlist中,最大索引值是4,如果要mlist.insert(5,'聪明又很笨的孩子'),则表示将"聪明又很笨的孩子"插入到索引值是5的前面,但是索引值是5的没有。5前面就是4的后面,就是追加 | |
代 码 | mlist= ['Adversity Awake','不变的你','伫立在茫茫的尘世中','孤独地提着易碎的灯笼'] mlist.insert(5,'聪明又很笨的孩子') print(mlist) |
运行结果 | ['Adversity Awake', '不变的你', '伫立在茫茫的尘世中', '孤独地提着易碎的灯笼', '聪明又很笨的孩子'] |
代 码 | #如果遇到那个i已经超过了最大索引值,会自动将所要插入的元素放到列表的尾部,即追加。 mlist = [4,1,5,8,0] mlist.insert(9,292) print(mlist) |
运行结果 | [4, 1, 5, 8, 0, 292] |
#a和b是两个列表变量,列表a为[3, 6, 9]已给定,键盘输入列表b,将a列表的三个元素插入到b列表中对应的前三个元素的后面,并显示输出在屏幕上。 例如:键盘输入列表b为[1, 2,3], 因此,屏幕输出计算结果为[1,3,2, 6, 3, 9] | |
代 码 | a = [3,6,9] b = eval(input()) #输入格式:[1,2,3] j=1 for i in range(len(a)): b.insert(j,a[i]) j+= 2 print(b) |
运行结果 | 键盘输入:[1,2,3] 屏幕输出:[1, 3, 2, 6, 3, 9] |
代 码 | # 使用insert把新元素加在列表尾,用-1来指定下标是不行的 mlist = [4,7,0,2,8,3,5] print ("原来列表是 : ",mlist) mlist.insert(-1,6) print ("现在列表是 : ",mlist) |
运行结果 | 原来列表是 : [4, 7, 0, 2, 8, 3, 5] 现在列表是 : [4, 7, 0, 2, 8, 3, 6, 5] |
代 码 | #大于等于列表长度的下标,只要insert的第一个参数是超过最大下标的值len(listname),都默认插入列表的尾部。 mlist = [4,7,0,2,8,3,5] print ("原来列表是 : ",mlist) mlist.insert(len(mlist),6) print ("现在列表是 : ",mlist) print() |
运行结果 | 原来列表是 : [4, 7, 0, 2, 8, 3, 5] 现在列表是 : [4, 7, 0, 2, 8, 3, 5, 6] |
代 码 | #大于等于列表长度的下标,只要insert的第一个参数是超过最大下标的值len(listname),都默认插入列表的尾部。 mlist = [4,7,0,2,8,3,5] print ("原来列表是 : ",mlist) mlist.insert(10,6) print ("现在列表是 : ",mlist) |
运行结果 | 原来列表是 : [4, 7, 0, 2, 8, 3, 5] 现在列表是 : [4, 7, 0, 2, 8, 3, 5, 6] |
代 码 | |
运行结果 | |
(5.4)、用运算符插入另一个列表的元素 | |
列表是序列的一种,所以也可以使用+进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。 使用+进行连接,是组合拼接列表,会生成一个新的列表,原有的列表不会被改变。 *用于重复列表 | |
语 法 | list[listname]=list[listname1]+...+ list[listnameN] |
语 法 | *用于重复列表 |
注 意 | +更多的是用来拼接列表, 如果想在列表中插入元素,应该使用几个专门的方法。 使用+运算符可以将多个序列连接起来; |
实 例 | |
代 码 | #使用+拼接两个列表 mlist1= [1,2,3,4,5,6] mlist2= [7,8,9,10] mlist = mlist1 + mlist2 print(mlist) |
运行结果 | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
代 码 | #使用 * 构建重复元素列表 print(['喵!'] * 3) |
运行结果 | ['喵!', '喵!', '喵!'] |
代 码 | #使用 * 构建重复元素列表 print(['果'] * 8) print(['果'] * 8) print(['果'] * 4,"小朋友们都爱",['果'] * 2) |
运行结果 | ['果', '果', '果', '果', '果', '果', '果', '果'] ['果', '果', '果', '果', '果', '果', '果', '果'] ['果', '果', '果', '果'] 小朋友们都爱 ['果', '果'] |
代 码 | #使用 * 构建重复元素列表 mlist= ['巴啦啦能量','乌特拉','魔仙力量提升! '] print(mlist * 2) |
运行结果 | ['巴啦啦能量', '乌特拉', '魔仙力量提升! ', '巴啦啦能量', '乌特拉', '魔仙力量提升! '] |
代 码 | #使用+拼接四个列表 mlist1= ["下一秒钟,命运如何转动,没有人会晓得"] mlist2= ["我说希望无穷"] mlist3= ["你猜美梦成空"] mlist4= ["相信和怀疑,总要决斗"] print(mlist1+mlist2+mlist3+mlist4) |
运行结果 | ['下一秒钟,命运如何转动,没有人会晓得', '我说希望无穷', '你猜美梦成空', '相信和怀疑,总要决斗'] |
代 码 | |
运行结果 | |
代 码 | |
运行结果 |
请点击下一章查看后续实例详解 ------》
逆境清醒 Python List列表——全实例详解系列 | ||
1 | 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念 | |
2 | 《 Python List 列表全实例详解系列(二)》__创建列表(5种方法) | |
3 | 《 Python List 列表全实例详解系列(三)》__列表添加元素(4种方法) | |
4 | 《 Python List列表全实例详解系列(四)》__列表删除元素(4种方法)删除重复元素方法 | |
5 | 《 Python List 列表全实例详解系列(五)》__修改元素(修改单个、修改一组) | |
6 | 《 Python List 列表全实例详解系列(六)》__查找元素 | |
7 | 《 Python List 列表全实例详解系列(七)》__索引和切片 | |
8 | 《 Python List 列表全实例详解系列(八)》__随机列表元素 | |
9 | 《 Python List 列表全实例详解系列(九)》__列表反转(6种方法) | |
10 | 《 Python List 列表全实例详解系列(十)》__清空列表 | |
11 | 《 Python List 列表全实例详解系列(十一)》__列表运算符 | |
12 | 《 Python List 列表全实例详解系列(十二)》__列表内置及常用函数 | |
13 | 《 Python List 列表全实例详解系列(十三)》__相关技巧 | |
14 | 《 Python List 列表全实例详解系列(十四)》__列表练习实例 | |
推荐阅读:
29 | | svg实例详解系列 |
28 | | |
27 | | |
26 | | 2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子 |
25 | | 2023春节祝福系列第一弹(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载) |
24 | | |
23 | | |
22 | | |
21 | | python爱心源代码集锦 |
20 | | 巴斯光年python turtle绘图__附源代码 |
19 | | Three.js实例详解___旋转的精灵女孩(附完整代码和资源) |
18 | | |
17 | | |
16 | | |
15 | | |
14 | | |
13 | | |
12 | | |
11 | | 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心) |
10 | | |
9 | | |
8 | | |
7 | | |
6 | | |
5 | | |
4 | | |
3 | | |
2 | | |
1 | |