slice切片操作
适用于列表,元组,字符串的切片操作
格式:[start🔚step] 步长省略是默认第二个字符串不写
1. 典型操作 三个数为正数
a = [23, 45, 67, 76, "hello,", "python"][2:4]
print(a) # [67, 76]
b = [0, 1, 2, 3, 4, 5, 6]
print(b[:]) # 截取全部
print(b[:3]) # 默认从0开始
print(b[2:]) # 默认end-1结束
print(b[2:6:2])
2. 三个数为负数
print(b[-3:]) # 倒数后三个数
print(b[:-2]) # [0, 1, 2, 3, 4]
print(b[-4:-1]) # [3, 4, 5]
print(b[::-1]) # [6, 5, 4, 3, 2, 1, 0] 倒序
print(b[-4::2]) # [3, 5]
# 注意:切片操作的时候,start和end不在[0,len()-1]时,也
# 不会报错。start小于0时,则会被当作0,end大于len()-1时,会被当成-1
列表的遍历
for x in b:
print(x, end="")
print()
浅复制
# 复制列表所有元素到新的列表对象 不同的对象,相同的值
list1 = list("姓名:魏浩如 学校:苏州科技大学")
list2 = list1
print(id(list1) == id(list2)) # True 说明是同一个对象
# 一旦list1改变,list2也会改变
# 浅层复制 只能copy一层
list2 = list(list1) # 工厂函数
list2 = list1[:] # slice 复制列表所有元素
import copy # 不规范 写在开头
list2 = copy.copy(list1)
list2 = list1.copy()
深层复制
list3 = [["你好"], "hello"]
list4 = copy.deepcopy(list3)
list3[0][0] = "您"
print(list3) # [['您'], 'hello']
print(list4) # [['你好'], 'hello']