Python教程

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

本文主要是介绍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

这篇关于Python3——关于“list”的使用练习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!