2.2访问列表
C++/Java 里面要求一个数组只能存相同类型的变量**~ ~**
Python 里的 列表 则无限制**, 放啥类型都可以!!**
#5.使用下标来访问列表元素 a = [1,2,3,4] # 0 1 2 3 python中的下标,是从0开始计数的!! print(a[2]) # 6.使用下标来修改元素 a =[1,2,3,4] a[2]=100 print(a)
由于下标是从0开始计算的
对于列表来说,下标的有效范围是,从 0 到 长度-1
当我们下标超出有效范围时,尝试访问,就会出现异常!!
#8.可以使用内建函数 len 来获取到列表的长度(元素个数),和字符串类似 a =[1,2,3,4] print(len(a))
len 可以传字符串,列表,元组,字典,自定义的类… =>动态类型~
#9.python 中的下标, 还可以写成负数!! # 例如 写成-1, 其实等价于 len(a)-1 a=[1,2,3,4] print(a[len(a) - 1]) # -1 就是倒数第一个元素! print(a[-1])
#10. 可以通过索引的方式访问列表里面列表的元素。 #例如,我们有一个列表nested_list,其中包含两个列表[1, 2, 3]和[4, 5, 6], #则可以通过以下方式访问它们的元素: nested_list = [[1, 2, 3], [4, 5, 6]] print(nested_list[0][1]) # 输出 2 print(nested_list[1][2]) # 输出 6 #在上面的例子中,[0]表示访问第一个列表,然后在该列表中再次使用索引[1]访问第二个元素。 #同样的方式,我们也可以访问第二个列表的第三个元素,即nested_list[1][2]。
2.3列表的切片操作
通过下标操作是 一次取出里面的一个元素.
通过切片, 则是一次取出一组连续的元素, 相当于得到一个 子列表
使用 [ : ] 的方式进行切片操作
切片操作中,[ ]里面有两个数字,表示了一段区间.
# 1. 切片操作的基本使用 a = [1,2,3,4] print(a[1:3])
1 表示开始区间的下标
3 表示结束区间的下标
1:3-------->取到下标 为1 一直到 下标为 3 的元素!
(包含 1,不包含 3)–>[1,3)
切片操作是一个比较高效的操作,进行切片的时候,只取出了原有列表的一部分,并不涉及到"数据的拷贝",假设有一个很大的列表,进行切片,切片的范围也很大,即使如此,切片操作仍然非常高效
# 2. 使用切片的时候,省略边界. a = [1,2,3,4] #省略后边界, 意思是从开始位置,一直取到整个列表结束. print(a[1:]) #省略前边界, 意思是从列表的 0 号元素开始取, 一直取到结束的后边界 print(a[:2]) #此处切片中的下标也可以写成负数. print(a[:-1]) #还可以把开始边界和结束边界,都省略掉! 得到的还是列表自身. print(a[:]) #-------------------------- #运行结果: #[2, 3, 4] #[1, 2] #[1, 2, 3] #[1, 2, 3, 4]
切片操作,还可以指定"步长". range
#3.带有步长的切片操作. a=[1,2,3,4,5,6,7,8,9,0] print(a[::1]) print(a[::2]) print(a[::3]) print(a[1:-1:2]) #运行结果: #[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] #[1, 3, 5, 7, 9] #[1, 4, 7, 0] #[2, 4, 6, 8]
#4.步长数值还可以是负数.当步长为负数时,意思是从后面往前来取元素. print(a[::-1]) print(a[::-2]) #运行结果: #[0, 9, 8, 7, 6, 5, 4, 3, 2, 1] # [0, 8, 6, 4, 2]
#5.当切片中的范围超出有效下标之后,不会出现异常! 而是尽可能把符合要求的元素获取到 a = [1,2,3,4,5,6,7,8,9,0] print(a[1:100]) #运行结果: # [2, 3, 4, 5, 6, 7, 8, 9, 0]
但是如果是下标索引,超出索引范围,就会发生越界异常
2.4列表的遍历操作
遍历:把列表里的每个元素,都依次取出来,并进行某种操作~[搭配循环使用]
#1.利用for循环来遍历列表
a = [1,2,3,4,5]
for elem in a:
print(elem)
#运行结果:
# 1
# 2
# 3
# 4
# 5
#2.使用 for 循环遍历,通过下标的方式.
a=[1,2,3,4,5]
for i in range(0,len(a)):
print(a[i])
#运行结果:
# 1
# 2
# 3
# 4
# 5
#1.使用for 循环来遍历列表
a = [1,2,3,4,5]
for elem in a:
elem = elem + 10
print(a)
#运行结果:
#[1, 2, 3, 4, 5]------------>列表元素值并未改变
#2.使用 for 循环遍历,通过下标的方式.
a=[1,2,3,4,5]
for i in range(0,len(a)):
a[i] = a[i] + 10
print(a)
#运行结果:
#[11, 12, 13, 14, 15]------------>列表元素值在原来的基础上加 10
通过对比两种打印列表元素的结果可得出结论:
单纯for循环取a的每一个元素 | 通过for循环****+下标访问 |
不能****够修改列表本身的值 | 能够修改****列表本身的值 |
#3.使用 while 循环, 通过下标遍历.
a=[1,2,3,4,5]
i = 0
while i < len(a):
print(a[i])
i += 1
2.5列表的插入操作
#1. 使用 append 往列表末位新增一个元素.
a=[1,2,3,4]
a.append(5)
a.append("hello")
print(a)
b = [5,6,7,8]
b.append("world")
print(b)
#运行结果:
# [1, 2, 3, 4, 5, 'hello']
#[5, 6, 7, 8, 'world']
注意:此处的 append 是搭配列表对象a,来一起使用的,而不是作为****一个独立的函数
这种要搭配对象来使用的函数(function),也叫做"方法"(method)
在python 中,对象,就可以视为是"变量"
type,print,input,len,自定义函数… 都是独立的函数~
#2. 还可以使用 insert 方法,往列表里的任意位置来新增元素~
a = [1,2,3,4]
a.insert(1,"hello")
a.insert(100,"hello")
#(元素插入位置的下标,插入的元素)
print(a)
#运行结果:
#[1, 'hello', 2, 3, 4, 'hello']
2.6列表的查找和删除
#1. 使用 in 来判定某个元素是否在列表存在
a = [1,2,3,4]
print(1 in a)
print(10 in a)
print(1 not in a)
print(10 not in a)
#运行结果:
# True
# False
# False
# True
#2. 使用 index 方法, 来判断,当元素在列表中的位置, 得到一个 下标
a=[1,2,3,4]
print(a.index(2))
print(a.index(3))
print(a.index(10))
#运行结果:
# 1
# 2
# ValueError: 10 is not in list
#1. 使用 pop 删除列表中最末尾的元素.
a = [1,2,3,4]
a.pop()
print(a)
#运行结果:
# [1, 2, 3]
#2. 使用 pop 还能删除任意位置的元素, pop 的参数可以传一个下标过去
a = [1,2,3,4]
a.pop(1)
print(a)
#运行结果:
# [1, 3, 4]
#3. 使用 remove 方法, 可以按照值来进行删除.
a = ["aa","bb","cc","dd"]
a.remove("cc")
print(a)
#运行结果:
# ['aa', 'bb', 'dd']
2.7列表的拼接
# 1. 使用 + 针对两个列表进行拼接.
a = [1,2,3,4]
b = [5,6,7,8]
c = b + a
print(c)
print(a)
print(b)
#运行结果:
# [5, 6, 7, 8, 1, 2, 3, 4]
# [1, 2, 3, 4]
# [5, 6, 7, 8]
使用 + 拼接列表的时候,只是针对当前列表的内容生成了一个更大的新的列表
原有的列表内容是不变的!
#2. 使用 extend 来进行拼接. # 这个拼接是❗直接❗把最后一个列表里的内容拼接到前一个列表里头~ a = [1,2,3,4] b = [5,6,7,8] a.extend(b) print(a) print(b) #运行结果: # [1, 2, 3, 4, 5, 6, 7, 8] # [5, 6, 7, 8]
# 3. 使用 += 来进行拼接
a = [1,2,3,4]
b = [5,6,7,8]
a += b
print(a)
print(b)
#运行结果:
# [1, 2, 3, 4, 5, 6, 7, 8]
# [5, 6, 7, 8]
a += b 等价于 a = a + b 运行过程如下👇
a.extend(b) 则是直接把 b 的内容拼到了 a 的后面~
如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!