1. 直接相加
直接相加(+)只能对同类型起作用,即只能用list加list。
range1=list(range(0,3)) print(range1) #[0, 1, 2] range2=list(range(8,10)) print(range2) #[8, 9] print(range1+range2) #[0, 1, 2, 8, 9]
在此基础上衍生出的 += 符号的用法,实际上下一节的 extend() 函数类似,因此是可以添加其他可迭代类型对象的:
range1=list(range(0,3)) print(range1) range2=list(range(8,10)) print(range2) range1+=range2 print(range1) #[0, 1, 2, 8, 9] set1=('factor1','factor2') range1+=set1 print(range1) #[0, 1, 2, 8, 9, 'factor1', 'factor2']
原理可以参考python3:序列的 +,+=,和extend的适用场景以及区别_上海 彭彭-CSDN博客一文,大致来说,就是在list使用+=运算符时会调用魔法函数__iadd__,这个函数就是转而直接调用extend()函数来实现该功能。
2. 使用 extend() 函数
list对象的extend()函数以一个可迭代的对象为入参,将入参对象中的元素全部加到list对象中。
入参可以是列表、元组、集合、字典等。如果是字典,将以其键加到list对象中。
函数的详细介绍可参考:Python3 List extend()方法 | 菜鸟教程
range1=list(range(0,3)) print(range1) range2=list(range(8,10)) print(range2) range1.extend(range2) print(range1) #[0, 1, 2, 8, 9] dict1={'key1':100,'key2':200} range1.extend(dict1) print(range1) #[0, 1, 2, 8, 9, 'key1', 'key2']
还是参考python3:序列的 +,+=,和extend的适用场景以及区别_上海 彭彭-CSDN博客一文,extend()函数的原理就是迭代入参的每个元素,使用下一节将介绍的append()方法逐一加到原对象末尾。
3. 使用 append() 函数
list对象的 append() 函数是将入参作为一个元素加到原对象末尾。所以如果想要将新对象的全部元素加到原对象中,需要对它的每个元素都应用 append() 函数。
#将入参与原对象合并,即对其每个元素都应用 `append()` 函数,相当于 `extend()` 函数 range1=list(range(0,3)) print(range1) range2=list(range(8,10)) print(range2) for v in range2: range1.append(v) print(range1) #[0, 1, 2, 8, 9] #将入参作为一个元素加到原对象中 range1.append(range2) print(range1) #[0, 1, 2, [8, 9]]
4. 使用数组切片
range1=list(range(0,3)) print(range1) range2=list(range(8,10)) print(range2) range1[len(range1):len(range1)+len(range2)]=range2 print(range1) #[0, 1, 2, 8, 9]