# 列表、元组操作
# 列表是我们最后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作
# 定义列表
names = ['Alex', "Tenglan", 'Eric']
# 通过下标访问列表中的元素,下标从0开始计数
print(names[0])
# 显示:Alex
print(names[2])
# 显示:Eric
print(names[-1]) # -1是列表中最后一个元素
# 显示:Eric
print(names[-2]) # -2是列表的倒数第二个元素,“-”是表示从列表的末尾开始计数。
# 显示:Tenngla
# 切片:取多个元素
names1 = ["Alex", "Tenglan", "Eric", "Rain", "Tom", "Amy"]
print(names1[1:4]) # 取下标1至下标4之间的数字,包括1但不包括4
# 显示:['Tengla', 'Eric', 'Rain']
print(names1[1:-1]) # 取下标1至-1的值,不包括-1
# 显示:['Tengla', 'Eric', 'Rain', 'Tom']
print(names1[0:3])
# 显示:['Alex', 'Tengla', 'Eric']
print(names1[:3]) # 如果是从头开始取,0是可以省略,和上句效果是相同的
# 显示:['Alex', 'Tengla', 'Eric']
print(names1[3:]) # 如果要取列表最后一个元素结束的下标就不要写
# 显示:['Rain', 'Tom', 'Amy']
print(names1[3:-1]) # 这种方式-1是不包含在内的
# 显示:['Alex', 'Tengla']
print(names1[::2]) # 最后的2代表取值的步进,就是每隔一个元素取一个值
# 显示:['Alex', 'Eric', 'Tom']
# 追加
names1.append("我是新来的") # 在列表的最后增加一个元素:“我是新来的”
print(names1)
# 显示:['Alex', 'Tengla', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
# 插入
names1.insert(2, "强行从Eric前面插入") # 2是插入元素的下标,原列表从下标2开始的元素自动往后移一位,包括2
print(names1)
# 显示:['Alex', 'Tengla', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
names1.insert(4, "从Eric后面插入试试新姿势")
print(names1)
# 显示:['Alex', 'Tengla', '强行从Eric前面插入', 'Eric', '从Eric后面插入试试新姿势', 'Rain', 'Tom', 'Amy', '我是新来的']
# 修改
names1[2] = "该换人了" # 将下标2的元素修改为“该换人了”
print(names1)
# 显示:['Alex', 'Tengla', '该换人了', 'Eric', '从Eric后面插入试试新姿势', 'Rain', 'Tom', 'Amy', '我是新来的']
# 删除
del names1[2] # 删除下标2的元素
print(names1)
# 显示:['Alex', 'Tengla', 'Eric', '从Eric后面插入试试新姿势', 'Rain', 'Tom', 'Amy', '我是新来的']
del names1[3]
print(names1)
# 显示:['Alex', 'Tengla', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
names1.remove("Eric") # 删除指定元素“Eric”
print(names1)
# 显示:['Alex', 'Tengla', 'Rain', 'Tom', 'Amy', '我是新来的']
names1.pop() # 删除最后一个元素
print(names1)
# 显示:['Alex', 'Tengla', 'Rain', 'Tom', 'Amy']
# 扩展
b = [1, 2, 3]
names1.extend(b) # 在names1列表末尾加上列表b的值
print(names1)
# 显示:['Alex', 'Tengla', 'Rain', 'Tom', 'Amy', 1, 2, 3]
# 拷贝
name_copy = names1.copy() # 只是一个浅copy
print(name_copy)
# 显示:['Alex', 'Tengla', 'Rain', 'Tom', 'Amy', 1, 2, 3]
# 统计
names1.insert(2, 'Amy')
print(names1.count('Amy')) # .count统计列表中某个值的数量
# 显示:2
# 排序&翻转
names1[-3] = '1'
names1[-2] = '2'
names1[-1] = '3'
names1.sort() # 排序。python3.x中不同的数据类型不能放到一起进行排序
print(names1)
# 显示:['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Rain', 'Tenglan', 'Tom']
names1.reverse() # 翻转
print(names1)
# 显示:['Tom', 'Tenglan', 'Rain', 'Amy', 'Amy', 'Alex', '3', '2', '1']
# 获取下标
print(names1.index("Amy")) # 获取“Amy”的下标
# 显示:3 返回找到的第一个对应的元素的下标
# 元组
# 创建以后就是一个只读列表
# 语法
names2 = ("alex", "jack", "eric")
# 元组只有两个方法:count和index
print(names2.index("jack")) # 获取“jack”的下标
# 显示:1
print(names2.count("alex")) # 统计“alex”的数量
# 显示:1