Python3——关于“list”的使用练习笔记

__Author__ = "MDJ"
#列表
names = "zhaoer zhangsan lisi wangwu"

names = ["zhaoer","zhangsan","lisi","wangwu"]

print(names[0],names[2]) #取0、2
print(names[1:3]) #顾头不顾尾,只取出1、2
print(names[-1]) #从右开始数切片,-1是最后一个
print(names[-3:-1]) #顾头不顾尾
print(names[-3:]) #取到最后一个

print("---------追加、插入-----------")

names.append("mengdajia") #追加
names.insert(1,"xiaomeng") #插入
print(names)

print("----------插入后对比----------")

print(names[0],names[2]) #取0、2
print(names[1:3]) #顾头不顾尾,只取出1、2
print(names[-1]) #从右开始数切片,-1是最后一个
print(names[-3:-1]) #顾头不顾尾
print(names[-3:]) #取到最后一个
print(names[0:-1:2]) #步长为2
print(names[::2]) #0和-1可以省略

print("----------remove删除----------")
names.remove("xiaomeng") #删除
print(names)

print("----------del删除----------")
del names[-1] #删除第 个
print(names)

print("-----------pop删除---------")
names.pop(1) #不输入下标,删除最后一个值
print(names)

print("-----------index查询---------")
print(names.index("lisi")) #查询某人的位置
print(names[names.index("lisi")]) #根据返回的位置输出该值

print("-----------count数量---------")
print(names.count("lisi"))

print("-----------翻转---------")
print(names.reverse()) #翻转
print(names)
print(names.sort()) #sort排序
print(names)

print("-----------合并---------")
names2 = [1,2,3]
names.extend(names2) #extend合并列表
print(names)
print(names2) #被合并表不变

print("-----------赋值、复制---------")
names[names.index("wangwu")] = ["wangwu","xiaowangwu"]
names2 = names #AAA-直接赋值,则只是赋值了起始地址(类似指针)
names3 = names.copy() #BBB-copy,浅copy只能copy第一层,第一层保存的是第二层的地址(类似指针)
names2[names2.index("lisi")] = "李四" #AAA-直接赋值只是赋予地址指针,所以实际内容会被同步替换
names3[names3.index("zhaoer")] = "赵二" #BBB-copy是复制了第一层表的内容,两个表内容地址不一致,所以可以独立替换
names3[1][names3[1].index("wangwu")] = "王五" #BBB-copy是浅copy,指向的二层列表的地址是同一个,所以新旧表替换第二层内容时会被一起替换
import copy
names4 = copy.deepcopy(names) #CCC-深copy,完全开辟空间
names4[1][names4[1].index("xiaowangwu")] = "小王五"
print(names)
print(names2)
print(names3)
print(names4)

print("-----------清理---------")
print(names.clear()) #清理,先执行清理方法后打印
print(names) #上一步清理后,源表已为空

补充浅COPY的几种方法:
names = ["张三","李四","王五"]
names1 = list(names)
names2 = names[:] #忽略首0、尾-1
import copy
names3 = copy.copy(names)
执行结果如下:

zhaoer lisi
['zhangsan', 'lisi']
wangwu
['zhangsan', 'lisi']
['zhangsan', 'lisi', 'wangwu']
---------追加、插入-----------
['zhaoer', 'xiaomeng', 'zhangsan', 'lisi', 'wangwu', 'mengdajia']
----------插入后对比----------
zhaoer zhangsan
['xiaomeng', 'zhangsan']
mengdajia
['lisi', 'wangwu']
['lisi', 'wangwu', 'mengdajia']
['zhaoer', 'zhangsan', 'wangwu']
['zhaoer', 'zhangsan', 'wangwu']
----------remove删除----------
['zhaoer', 'zhangsan', 'lisi', 'wangwu', 'mengdajia']
----------del删除----------
['zhaoer', 'zhangsan', 'lisi', 'wangwu']
-----------pop删除---------
['zhaoer', 'lisi', 'wangwu']
-----------index查询---------
1
lisi
-----------count数量---------
1
-----------翻转---------
None
['wangwu', 'lisi', 'zhaoer']
None
['lisi', 'wangwu', 'zhaoer']
-----------合并---------
['lisi', 'wangwu', 'zhaoer', 1, 2, 3]
[1, 2, 3]
-----------赋值、复制---------
['李四', ['王五', 'xiaowangwu'], 'zhaoer', 1, 2, 3]
['李四', ['王五', 'xiaowangwu'], 'zhaoer', 1, 2, 3]
['lisi', ['王五', 'xiaowangwu'], '赵二', 1, 2, 3]
['李四', ['王五', '小王五'], 'zhaoer', 1, 2, 3]
-----------清理---------
None
[]

进程已结束,退出代码0

上一篇:【视觉检测C++接口实现】vs2019使用动态链接库yolo_cpp_dll调用yolov3


下一篇:怎么取张量tensor(261.)中的值