# 1. 往列表中添加值
# l = [111,'222','hello']
# l.append(333) # l.append是往列表的最后加值
# print(l)
# 2. 往列表中插入值
# l.insert(3,'fff') # l.insert有两个参数:(index,object),参数index是索引,表明在这个索引值之前的位置插入
# print(l)
# 3.从一个列表中取出单独的值插入另一个列表中
# 函数形式:
# l = [111,'222','hello']
# x = ['abc',222,'ggg']
# for item in x:
# l.append(item)
# print(l)
# 上述方法可以实现需求,但是python中已经实现了这个方法:extend
# l = [111,'222','hello']
# x = ['abc',222,'ggg']
# l.extend(x)
# print(l)
# l.extend('anc0') # 循环取出extend中的值,然后添加到调用这个函数的列表尾部
# print(l)
# 4.在列表中删除一个值
# 方式一:通用的删除方法,没有返回值,只是单纯的删除
# x = ['abc',222,'ggg']
# del x[1] # del不支持赋值语法,l = del x[1]报错
# print(x) # pycharm中撤销操作是ctrl+z,反撤销是shift+ctrl+z
# 方式二:l.pop()根据索引删除,pop()会返回值被删除的值
# l = ['abc',222,'ggg']
# l.pop()
# l.pop() # 不指定索引默认删除最后一个
# print(l)
# res = l.pop(1)
# print(l,res)
# 方式三:l.remove()根据元素删除,必须指定列表中的元素,返回值是None
# l = ['abc',222,'ggg']
# # l.remove(222)
# # print(l)
#
# res = l.remove('abc')
# print(res)
"""
上述三种列表删除方式:
1、单纯地删除某个元素:
del,remove
2、删除这个元素并且拿到这个值
pop
"""
# 切片(顾头不顾尾,步长)是一种拷贝行为,不修改原来的列表
# l = ['abc',222,'ggg','a0','b','v']
# print(l[0:5:2]) # 输出结果:['abc', 'ggg', 'b']
# 拷贝一份新的列表
# new_l = l[:] # 切片相当于拷贝行为,而且相当于浅拷贝
# import copy
#
# a = [1, 2, 3, 4, ['a', 'b']] # 原始对象
#
# b = a # 赋值,传对象的引用
# c = copy.copy(a) # 对象拷贝,浅拷贝
# d = copy.deepcopy(a) # 对象拷贝,深拷贝
#
# a.append(5)
# 入队操作 # l1 = [] # l1.append('first') # print(l1) # l1.append('second') # print(l1) # l1.append('third') # print(l1) # # 出队操作 # print(l1.pop(0)) # print(l1.pop(0)) # print(l1.pop(0)) # 入栈操作 l1 = [] l1.append('first') print(l1) l1.append('second') print(l1) l1.append('third') print(l1) # 出栈操作 pop函数默认是从最后开始删,-1是从最后一位开始删,一样的效果 print(l1.pop(-1)) print(l1.pop()) print(l1.pop())