# 列表中 添加数据 动态扩展 采用append方法,解释器根据需要分配内存;
# 列表中 删除数据 动态删除 解释器会根据需要回收内存;
接下来介绍四种常用管理列表的 方法:
remove
pop
extend
insert
1.remove
//remove 取一个值作为唯一参数
// remove 方法会从列表中删除指定数据值的第一次出现.
// 如果再列表中找到了这个数据值,就会从列表中删除包含这个值的对象(同时列表的大小减1).
// 如果再列表中没有找到这个数据值,解释器就会产生一个错误(后面会介绍有关的更多内容)
eg1:
num = [1,2,3,4]
num.remove(1)
num
# [2, 3, 4]
eg2:
num = [1,2,3,4,1]
num
num.remove(1)
# 1 不是一个索引值,而是要删除的值.
# [2, 3, 4, 1]
num = [1,2,3,4,5,6]
num.remove(7)
# ValueError: list.remove(x): x not in list
2.pop方法
从列表中弹出对象
如果你知道想要删除的对象的值,remove方法很好用.
不过通常情况下,你可能想从某个特定的索引槽删除一个对象.
为此,Python提供了pop方法:
pop 取一个可选的索引值作为参数.
pop 方法根据对象的索引值从现有列表删除和返回一个对象.
如果调用pop时没有指定索引值,将删除和返回列表中的最后一个对象.
如果制定了一个索引值,则会删除和返回那个位置上的对象.
如果列表为空或者调用pop时指定了一个不存在的索引值,解释器会产生一个错误(后面将介绍有关的更多内容)
如果愿意,可以把pop返回的对象赋值给一个变量,在这种情况下,对象会保留下来.
不过,如果没有弹出的对象赋给一个对象,它的内存就会被回收,这个对象将消失
eg1:
num = [1,2,3,4,5]
num.pop(0)
num
# [2, 3, 4, 5]
eg2:
pops = num.pop(0)
pops
# 2
将弹出并删除的值 赋给变量pops
num
# [3, 4, 5]
eg3:
num.pop()
# 5
# 不给pop方法执行索引的位置,默认删除最后数据值(对象)
num
# [3, 4]
3.extend
# extend
# 用对象扩展列表
# 我们已经知道可以用append方法向现有列表中添加单个对象,另外还有一些办法可以向列表中动态添加数据;
# extend: 取一个对象列表作为唯一参数
# extend方法接收第二个列表,将其中的各个对象增加到现在列表.
# 如果要将两个列表合并为一个列表,这种方法非常实用:
eg1:
num
# [3, 4]
num.extend([1,2])
# 向num列表中添加列表 [1,2]
num
# [3, 4, 1, 2]
eg2:
num.extend([])
# 向num列表中添加一个空列表
num
# [3, 4, 1, 2]
eg3:
num.append([])
# 如果通过append方法添加一个空列表呐
num
# [3, 4, 1, 2, []]
# 添加成功,因为append方法是添加单个对象,而extend是进行合并操作
4.insert
# append and extend 对列表的操作都是在最右边的位置增加对象
# 有时,你可能希望把对象增加到列表开头(最左端)或者任意位置,如果这样
# 使用insert方法
eg1:
num = [2,3,4]
num.insert(0,1)
# 在索引为0的位置添加对象1
num
# [1, 2, 3, 4]
eg2:
num.insert(2,'insert_two')
# 在索引为3的位置添加 'insert_two'
num
# [1, 2, 'insert_two', 3, 4]
eg3:
num.insert(3,"string")
# 在索引为3的位置添加'string'
num
# [1, 2, 'insert_two', 'string', 3, 4]
# 以上4点是对列表的 remove pop extend insert 方法的介绍和举例
如果以上,你还觉得不够明了
那么可在编辑器下输入以下命令,可能直接请求帮助文档。
help(list)
help(list.append)
5.挑战的时候到了:
# tranning
# 把字符串"Don't panic" 转换为字符串 "on tap"
# 用以上方法
phrase = “Don’t panic!”
plist = list(phrase)
print(phrase)
print(plist)
——————
——————
——————
new_phrase = ‘’.join(plist)
print(plist)
print(new_phrase)
现在执行会输出
Don't panic!
['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
Don't panic!
# 作答
# trannning.
phrase = "Don't panic!"
plist = list(phrase)
print(phrase)
# Don't panic!
print(plist)
# ['D', 'o', 'n', "'", 't', ' ', 'p', 'a', 'n', 'i', 'c', '!']
# 去除0位置 3位 5位 后4位
plist.remove('D')
# 去除0位置
for i in range(4):
plist.pop()
# 去除后4位
print(plist)
# ['o', 'n', "'", 't', ' ', 'p', 'a']
plist.pop(2)
print(plist)
# 第3位去除
# ['o', 'n', 't', ' ', 'p', 'a']
# 交换最后两位的位置
# plist.pop(),plist.pop()
# 弹出a 弹出p
plist.extend([plist.pop(),plist.pop()])
print(plist)
# ['o', 'n', 't', ' ', 'a', 'p']
# 去除空格
# plist.pop(3)
# 将空格插入到第二位
plist.insert(2,plist.pop(3))
print(plist)
# ['o', 'n', ' ', 't', 'a', 'p']
new_phrase = ''.join(plist)
print(plist)
# ['o', 'n', ' ', 't', 'a', 'p']
print(new_phrase)
# on tap