1.列表
# li = ["wang","jian","wei"]
# print(li)
# 结果:['wang', 'jian', 'wei']
# print(type(li))
# 结果:<class 'list'>
# 列表是随着你的操作而改变的,不是像字符串一样
# -------------------------------------------------
# <增>
# append 在末尾追加
# li = ["wang","jian","wei"]
# li.append("superman")
# print(li)
# 结果:['wang', 'jian', 'wei', 'superman']
# insert 插入:根据输入的索引插入相应的值
# li = ["wang","jian","wei"]
# li.insert(1,"张三")
# print(li)
# 结果:['wang', '张三', 'jian', 'wei']
# --------------------------------------------------------
# <删>
# pop 删除,默认删除最后一个,可以指定删除的索引值
# li = ["wang","jian","wei"]
# li.pop()
# print(li)
# 结果:['wang', 'jian']
# li.pop(2)
# print(li)
# 结果:['wang', 'jian'] ###将索引值为2的值删除
# remove 通过输入字符串直接删除
# li = ["wang","jian","wei"]
# li.remove("jian")
# print(li)
# 结果:['wang', 'wei']
# del 通过索引删除对应的值
# li = ["wang","jian","wei"]
# del li[0]
# print(li)
# 结果:['jian', 'wei']
# -----------------------------------------------------------
#<改>
# 可以通过索引直接将对应的值修改为等号右边的值
# li = ["wang","jian","wei"]
# li[0]="123"
# print(li)
# 结果:['123', 'jian', 'wei']
# 指定的索引位置插入指定的值
# li = ["wang","jian","wei"]
# li.insert(1,"王剑威")
# print(li)
# 结果:['wang', '王剑威', 'jian', 'wei']
# -----------------------------------------------------------------
#<查>
# 列表是可迭代的,所以支持for循环,通过for循环可以遍历出列表的每一个值
# li = [1,2,3,4,5,6,7]
# for n in li:
# print(n)
# 结果: 1
# 2
# 3
# 4
# 5
# 6
# 7
# 索引区间取值
# li = [1,2,3,4,5,6,7]
# print(li[1:3])
# 结果:[2, 3]
# 通过索引倒着取值,从-1到最后,都是负的,倒着取值需要些不长为-1.否则取得值为空
# li = [1,2,3,4,5,6,7]
# print(li[-1::-1])
# 结果:[7, 6, 5, 4, 3, 2, 1]
# -----------------------------------------------------------------------------------
#<列表的嵌套>
# li = ["亚瑟","李白","韩跳跳",["王昭君",["夏侯惇",["周杰伦","安其拉"]]],["牛魔王"]]
# print(li)
# 结果:['亚瑟', '李白', '韩跳跳', ['王昭君', ['夏侯惇', ['周杰伦', '安其拉']]]]
# 嵌套的列表的for循环
# for n in li:
# print(n)
# 结果:亚瑟
# 李白
# 韩跳跳
# ['王昭君', ['夏侯惇', ['周杰伦', '安其拉']]]
# ['牛魔王']
# 请输出周杰伦
# print(li[3][1][1][0])
# 结果:周杰伦
2.元祖常用操作
# >元组:元组 元组和list差不多,俗称不可变的列表,又被称为只读列表,所以不支持增删改,只支持查(有些情况下是可以改的)
# 元组的格式
# 变量名 = (元素1,元素2,....)
# 注意以下情况,当元组中只有一个元素时,元组中的内容会被当做字符串处理,数字是也一样
# tu = ("wang")
# print(type(tu))
# <class 'str'>
# tu1 = (123)
# print(type(tu1))
# <class 'int'>
# 所以当元组中只有一个元素时,需要在这唯一的一个元素后面加一个逗号作为分隔
# tu = ("wang",)
# print(type(tu))
# <class 'tuple'>
#--------------------------------------------------------------------------------------------------------
#<查>
# tu = ("张",True,123,"QQ","Google")
# 查找元素的索引值,还可以添加起始,终止位置.和列表字符串的使用一样
# print(tu.index("张"))
# 结果:0
# print(tu.index(True))
# 结果:1
# 通过索引值输出元素
# print(tu[1])
# 结果:True
# 通过切片输出元素,和列表字符串的使用方法一致
# print(tu[0:2])
# 结果:('张', True)
# print(tu[-1::-1])
# 结果:('Google', 'QQ', 123, True, '张')
###被切片后的数据依旧还是元组类型的数据
# -------------------------------------------------------------------------------------------
### 特殊情况一 ###
### 可修改的元组,当元组嵌套列表时,本身元组是不可变的, ###
### 但是仔细想,不可变的是元组,我要是修改的是列表,我只要保证我的列表在元组的位置不变,是否可以. ###
# p1 = ("马云","马化腾",["刘强东","QQ"])
# p1[2][1] = "Google"
# print(p1)
# 结果:('马云', '马化腾', ['刘强东', 'Google']) 将元组中的列表中的QQ变成了Google
# p1[2].append("SKY")
# print(p1)
# 结果:('马云', '马化腾', ['刘强东', 'Google', 'SKY']) 向元组中的列表追加SKY
### 关于不可变, 注意: 这里元组的不可变的意思是子元素不可变. 而子元素内部的子元素是可
### 以变, 这取决于子元素是否是可变对象.
# ===========================================================
#元组同样支持for循环
#tu = ("one","two",3,"四",[5,"6","7"],("8",9))
#for n in tu:
# print(n)
# 结果: one
# two
# 3
# 四
# [5, '6', '7']
# ('8', 9)
###只会循环元组的子元素,不会循环子元素的内部.
# count 统计
# tu = (1,2,"1","2",1,"1","2",["2"],("1"))
# print(tu.count(1))
# 结果:2
# print(tu.count("2"))
# 结果:2
### 在统计元组时只会统计元组的子元素,不会统计子元素的内部
# print(len(tu))
# 结果:9
### 每一个子元素算一个,子元素的内部不算
# index 根据元素查找索引值
# print(tu.index(["2"]))
# 结果:7