Python列表 insert()方法(超详细)

向列表中添加元素有四种方法:append()、extend()、insert()、+=。

x = []
x.append([1, 2])
print(x)                 # [[1, 2]]
x.insert(1, [1, 2])
print(x)                 # [[1, 2], [1, 2]]
x.extend([1, 2])
print(x)                 # [[1, 2], 1, 2]
x += [1, 2]
print(x)                 # [[1, 2], [1, 2], 1, 2, 1, 2]

使用insert()方法向列表中指定的位置插入指定的元素,它有两个参数第一个参数代表要插入的位置,第二个参数代表要插入的元素。

x = []
x.insert(0, 1)                # 整数
print(x)                      # [1]

x.insert(1, "星期五")         # 字符串
print(x)                      # [1, '星期五']

x.insert(2, [2, 3])           # 列表
print(x)                      # [1, '星期五', [2, 3]]

x.insert(3, (4, 5))           # 元组
print(x)                      # [1, '星期五', [2, 3], (4, 5)]

x.insert(4, {1: "星期一", 2: "星期二"})     # 字典
print(x)                      # [1, '星期五', [2, 3], (4, 5), {1: '星期一', 2: '星期二'}]

x.insert(5, {10, 11})         # 集合
print(x)                      # [1, '星期五', [2, 3], (4, 5), {1: '星期一', 2: '星期二'}, {10, 11}]

x.insert(6, None)             # None
print(x)                      # [1, '星期五', [2, 3], (4, 5), {1: '星期一', 2: '星期二'}, {10, 11}, None]

insert()方法不返回值,但更新列表。

x = []
y = x.insert(0, 1)
print(y)                      # None
print(x.insert(1, [2, 3]))    # None
print(x)                      # [1, [2, 3]]

因为insert()方法没有产生值,所以不能将insert()方法赋给一个变量,不能直接使用print()函数将insert()方法输出。

x = []
y = x.insert(0, 1)
print(y)                      # None
print(x.insert(1, [2, 3]))    # None
print(x)                      # [1, [2, 3]]

使用append()方法和insert()方法添加元素时,既可以添加单个元素,也可以添加序列,使用extend()方法添加元素时,只能添加序列,不能添加单个元素。

x = []
x.append([1, 2])
x.append(1)
print(x)                      # [[1, 2], 1]

x.insert(len(x), [1, 2])
x.insert(len(x), 1)
print(x)                      # [[1, 2], 1, [1, 2], 1]

x.extend([1, 2])
print(x)                      # [[1, 2], 1, [1, 2], 1, 1, 2]

append()方法和insert()方法是将整个序列添加进去,extend()方法是将序列拆分后一个元素一个元素的添加进去。

x = []
x.append([1, 2])
print(x)                      # [[1, 2]]
x.insert(1, [1, 2])
print(x)                      # [[1, 2], [1, 2]]
x.extend([1, 2])
print(x)                      # [[1, 2], 1, 2]

浅拷贝:拷贝这个对象的内存地址,原对象发生变化新对象也会跟着发生变化。

x = []
y = x
x.append("星期五")
print(y)                      # ['星期五']

深拷贝:拷贝这个对象的全部内容,原对象发生变化新对象不会跟着发生变化。

x = []
y = x.copy()
x.append("星期五")
print(x)                      # ['星期五']
print(y)                      # []

使用append()方法和insert()方法添加序列时,使用的是浅拷贝,使用extend()方法添加序列时,使用的是深拷贝。

x = []
y = [1, 2]
x.append(y)
print(x)           	      # [[1, 2]]
y.append(3)
print(x)           	      # [[1, 2, 3]]

x = []
y = [1, 2]
x.insert(1, y)
print(x)            	      # [[1, 2]]
y.insert(2, 3)
print(x)            	      # [[1, 2, 3]]

x = []
y = [1, 2]
x.extend([1, 2])
print(x)            	      # [1, 2]
y.extend([3])
print(x)            	      # [1, 2]

使用append()方法和insert()方法添加序列时,添加的是内存地址,而不是实际的值,如果原序列发生变化,添加进去的序列也会跟着发生变化,使用extend()方法添加序列时,添加的是全部内容,如果原序列发生变化添加进去的序列不会跟着发生变化(涉及到了浅拷贝和深拷贝)。

x = []
y = [1, 2]
x.append(y)
print(x)           	      # [[1, 2]]
y.append(3)
print(x)           	      # [[1, 2, 3]]

x = []
y = [1, 2]
x.insert(1, y)
print(x)            	      # [[1, 2]]
y.insert(2, 3)
print(x)            	      # [[1, 2, 3]]

x = []
y = [1, 2]
x.extend([1, 2])
print(x)            	      # [1, 2]
y.extend([3])
print(x)            	      # [1, 2]

insert()方法和len()函数可以搭配在一起。

# 方法1
x = [1, 1.1, "星期五", [1, 2], (1, 2)]
x.insert(len(x), "星期六")
print(x)        # [1, 1.1, '星期五', [1, 2], (1, 2), '星期六']
# 方法2
x = [1, 1.1, "星期五", [1, 2], (1, 2)]
x.insert(99, "星期六")
print(x)        # [1, 1.1, '星期五', [1, 2], (1, 2), '星期六']

你可能感兴趣的:(Python基础,python,开发语言)