Python 列表 extend()函数使用详解
extend函数使用详解1、可以接收的参数
1.1、添加字符串
1.2、添加元组
1.3、添加字典
2、原理解析
3、extend() 和 append()、+ 的区别?
4、特殊的添加方式
extend() 可以在列表末尾「添加」另一个「序列」中的值。
语法
list.extend( iterable )
参数
iterable :需要添加的元素列表
返回值
没有返回值,只是修改原来的列表
实例:向列表中添加另一个列表
list1 =
list2 =
list1.extend(list2)
print(list1)
输出:
1、可以接收的参数
extend() 接收的参数类型是「可迭代对象」,任何具有_iter_()或_getitem_()方法的对象都是可迭代对象,Python内了很多可迭代对象,常见的有 list,str,tuple,dict。
1.1、添加字符串
extend() 可以添加「字符串」类型的数据,字符串的每一个「字符」,都被当做一个新「元素」。
list1 =
str1 = 'abc'
list1.extend(str1)
print(list1)
输出:
1.2、添加元组
extend() 可以添加「元组」类型的数据,和添加列表类似,每个「元素」都被当做一个新元素。
list1 =
tuple1 = (4, 5, 6)
list1.extend(tuple1)
print(list1)
输出:
1.3、添加字典
extend() 可以添加「字典」类型的数据,只添加键,每一个「键」都被当做一个新「元素」。
list1 =
dict1 = {'key1': 1, 'key2': 2}
list1.extend(dict1)
print(list1)
输出:
2、原理解析
extend() 只是将元素追加在列表「末尾」,本质上是 “修改” 而不是 “增加”,不会创建新的列表。
我们打印添加前、后的内存地址可以发现,「内存地址」没有变,还是原来的那个列表。
list1 =
list2 =
print(id(list1))
list1.extend(list2)
print(id(list1))
输出:
1930566508928
1930566508928
extend() 在添加其他类型时,会先转换成 list,再添加元素,类似下面这样:
list1 =
str1 = 'abc'
list2 = list(str1)
print(list2)
list1.extend(list2)
print(list1)
输出:
['a', 'b', 'c']
3、extend() 和 append()、+ 的区别?
以添加列表为例
extend() 添加列表,是将列表中的「每个元素」都当做一个新元素,添加到原来的列表中
list1 =
list2 =
list1.extend(list2)
print(list1)
输出:
append() 添加列表,是将「>整个列表」当做一个新元素,添加到原来的列表中
list1 =
list2 =
list1.append(list2)
print(list1)
输出:
]
+ 会「拼接」元素,并创建一个新的列表存放,内存地址会改变
list1 =
list2 =
print(id(list1))
print(id(list2))
print(id(list1 + list2))
输出:
2680876376448
2680876376576
2680878544128
+= 的效果跟 extend() 一样,每个元素都被当做一个新元素,并且不会改变内存
list1 =
list2 =
print(id(list1))
list1 += list2
print(list1)
print(id(list1))
输出:
2150265921856
2150265921856
4、特殊的添加方式
配合算术「运算符」添加列表
list1 =
list2 =
list1.extend(list2 * 2)
print(list1)
list1.extend(list1 + list2)
print(list1)
输出:
1
2
「索引」取值添加列表
list1 =
list2 =
list1.extend(list2)
print(list1)
输出:
页:
[1]