#列表格式  有序的,可以增删改查。可以嵌套任何类型。
name = ["name1","name2","name3","name4"]

#查询
print(name)
#查询name2
print(name[1])
#切片,就是查询范围name2和name3
print(name[1:3])
#查询最后两位;最后的-1 可以省略不写;
print(name[-2:])
#查询前面两位;前面的0也可以省略不写;
print(name[:2])
#步长切片[开始位置:结束位置:步长]
print(name[0:-1:2])

#增加 #追加
name.append("name5")
print(name)
#插入 name6到1的位置
name.insert(1,"name6")
print(name)
#修改 name1为name0
name[0] = "name0"
print(name)

#删除
#方法一
name.remove("name6")    #删除name6元素
print(name)
#方法二
del name[0]     #删除第一个元素
print(name)
#方法三
name.pop()      #默认删除最后一个元素
name.pop(0)     #指定删除第一个元素
print(name)

#查询name3的index 也就是小标位置
print(name.index("name3"))
#查询name3的小标位置,并打印name3
print(name[name.index("name3")])

#统计列表相同元素的个数
name.append("name3")
name.insert(0,"name3")
print(name.count("name3"))

#反转整个列表元素
name = ["name1","name2","name3","name4"]
name.reverse()
print(name)

#列表元素排序,默认按照ASCII的表排序
name = ["Aname1","#name2","aname3","1name4"]
name.sort()
print(name)

#扩展列表。将一个列表扩展到另一个列表里边
#将nam2扩展到name列表里边
name = ["name1","name2","name3","name4"]
name2 = [1,2,3,4]
name.extend(name2)
print(name)

# #删除列表
# del name2
# print(name,name2)       #这时name2已经删除,会报错没有定义

#复制列表;

#浅copy,只完整复制第一层内容
name = ["name1","name2",[111,222],"name3","name4"]
name2 = name.copy()     #只完整复制第一层内容
print(name,name2)
name[0] = "name0"       #name改变,name2不变
name[2][0] = "LLL"      #name改变,name2也跟着改变,[111,222]在name2里边只是存的一个内存地址
print(name,name2)
#清空列表
name.clear()
print(name)
'''
浅copy补充
    第二个列表是第一个列表的所有元素的引用;
    方法1: name2 = copy.copy(name)
    方法2: name2 = name[:]
    方法3: name2 = list(name)
    应用:用于创建联合账号;夫妻公用一个银行账号
'''
#深copy
import copy
name = [1,2,3]
name2 = copy.deepcopy(name)
print(name,name2)

name2=copy.copy(name)        #这个等于浅copy:name2 = name.copy()

#循环列表
# name = [1,2,3]
# for i in name:
#     print(i)
#     输出>>>
#             1
#             2
#             3