一、下标法访问列表元素回顶
rhyme = [1, 2, 3, 4, 5, "你好"]
print(rhyme[0], rhyme[1], rhyme[2])
极其简单。
二、len函数获得列表长度回顶
length = len(rhyme)
print(length)
三、切片操作回顶
print(rhyme[length - 1], rhyme[-1], rhyme[0:3], rhyme[3:6], rhyme[:3], rhyme[3:], rhyme[:], rhyme[0:6:2], rhyme[::2], rhyme[::-2], rhyme[::-1])
s = [1,2,3,4,5]
s[len(s):] = [6]
print(s)
s[len(s):] = [7,8,9]
print(s)
heros1 = ["蜘蛛侠","绿巨人","黑寡妇","鹰眼","灭霸","雷神"]
heros1[4] = "钢铁侠"
print(heros1)
heros1[3:] = ["武松","林冲","李逵"]
print(heros1)
切片方括号里面的范围一般是左闭右开,冒号左边省略,默认为0,冒号右边省略,默认为len,第二个冒号右边是显示的步长。
切片法,s[len(s):] == s[5:]表示在末尾添加元素。
可以用赋值运算符进行元素替换,它首先会把=左边指定的元素删除,然后将=右边的可迭代对象的片段插入左边被删除的位置。
切片操作还有一些很有意思的性质。比如当用下标i遍历某个字符串s时,当i的值为len(s)-1时,切片操作s[i:i+1]是合理的。 这是因为Python的切片操作是安全的,不会因为下标越界而报错。这样的切片操作会返回一个空字符串。也就是说,此时的s[i:i+1] 等价于s[i],多余的s[i+1]被截断了。
四、append函数回顶
heros = ["绿巨人", "钢铁侠"]
heros.append("黑寡妇")
print(heros)
在列表末尾增加一个元素
五、extend函数回顶
heros.extend(["鹰眼","灭霸","雷神"])
print(heros)
extend参数必须是一个可迭代对象
六、insert函数回顶
s.insert(0,0)
s.insert(1,-1)
s.insert(3,21)
print(s)
s.insert(len(s),6)
insert第一个参数是需要插入的下标,第二个参数是需要插入的元素。
insert(len(s),6)是在末尾插入6。
七、remove函数回顶
heros.remove("灭霸")
print(heros)
remove可以删除指定元素,如果列表存在多个匹配的元素, 那么它只会删除第一个。如果指定的元素不存在,那么报错 如:heros.remove("美国队长") 就会报错
八、pop与clear函数回顶
heros.pop(2)
print(heros)
heros.clear()
pop()可以删除指定下标的元素;clear()可以删除整个列表元素。
如果pop无参数,那么一般是删除最后一个元素。
九、排序函数sort与reverse回顶
num = [3,1,9,6,8,3,5,3]
num.sort()
print(num)
num.reverse()
print(num)
num.sort(reverse=True)
print(num)
num.sort()可以将列表进行就地从小到大排序 num.reverse()可以将列表就地从大到小排序 num.sort(reverse=true/false)如果sort的参数reverse为true, 那么就从大到小排序,如果reverse为false,那么就从小到大排序
十、count、index函数回顶
print(num.count(3))
index = heros1.index("绿巨人")
print(index)
heros1[heros1.index("绿巨人")] = "神奇女侠"
print(heros1)
nums = [3,1,9,6,8,3,5,3]
print(nums.index(3,1,7))
nums2 = nums.copy()
print("i am the copy:",nums2)
num.count(目标)可以寻找目标在列表中出现的次数,heros1.index(目标)可以寻找目标对应的列表下标,当然这是一个参数的情况。如果有三个参数,index()格式就是:index(目标,start,end)也就是从start下标开始,一直寻找到end下标,寻找是否有目标,nums.copy()用来拷贝列表
十一、列表的加法和乘法回顶
s = [1, 2, 3]
t = [4, 5, 6]
print(s + t)
print(s * 3)
列表加法就是列表元素的衔接,列表乘法就是将列表元素重复。
十二、二维列表操作回顶
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#*二维列表
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix)
#*通过print可以直接打印二维列表
for i in matrix:
for each in i:
print(each)
#*这是访问二维列表的元素
print("升级一下:")
for i in matrix:
for each in i:
print(each, end=' ')
#*end=' '作用是在打印each之后追加空格
print()
#*print()作用是打印换行符
print(matrix[0])
#*索引行
print(matrix[1][1])
#*索引元素
#*下面是建立二维列表的第二种方法
A = [0] * 3
#*先创建一个一维列表,再用循环创建二维列表
for i in range(3):
A[i] = [0] * 3
print(A)
#*B = [[0] * 3] * 3是错误的
十三、is关键字回顶
x = 'study'
y = 'study'
print(x is y)
#*is运算符是同一性运算符,它作用是检测两个变量是否指向同个对象的运算符,
#*即用C的看法,就是看他们是否地址相同,相同则返回true,不同则返回false
z = [1,2,3]
m = [1,2,3]
print(z is m)
#*尽管列表元素都相同,但是他们是可变的,与字符串是不一样的,他们的地址是不一样的,
#*也就是为元素开辟的内存空间是不同的
十四、特殊操作回顶
x = [1,2,3]
y = x
#*赋值运算不是将数据放到变量之中,而是将数据与变量挂钩,这称为引用,
#*或者是变量的引用传递给另一个变量,正如上面的y = x,因此y和x可以同时改变一个数据
#*要想得到两份独立的数据,需要用到拷贝
x[1] = 0
print(x,y)
#*第一,使用内置函数.copy(),可以实现浅拷贝
z = x.copy()
x[1] = 2
print(x,z)
十五、列表拷贝操作回顶
#*第二,使用切片,也可以实现浅拷贝
m = x[:]
x[1] = 0
print(x,m)
#*这两种浅拷贝都可以实现将数据独立的作用
#*如果有嵌套对象,那么浅拷贝就不足够了,因为浅拷贝只能拷贝外层的对象,如果出现嵌套,就要使用深拷贝
#*深拷贝需要用到copy模块,其中,copy()函数是浅拷贝函数,deepcopy()函数是深拷贝函数
#*deepcopy()函数可以将所有元素拷贝下来,无论嵌套层级
x = [[1,2,3], [4,5,6], [7,8,9]]
y = x.copy()
x[1][1] = 0
print(x,y)
#*浅拷贝
import copy
x = [[1,2,3], [4,5,6], [7,8,9]]
y = copy.copy(x)
#*浅拷贝
x[1][1] = 0
print(x,y)
x = [[1,2,3], [4,5,6] ,[7,8,9]]
y = copy.deepcopy(x)
#*深拷贝
x[1][1] = 0
print(x,y)