Python教程:列表与字典详解
文章目录
为什么有人会问我Python的列表和字典是什么呢?气死我了,这都不知道,气得我直接
开课!
5.1 列表
所谓列表,可以简单的理解成是一堆东西绑在一起,要访问列表中的东西,需要用到下标。
下标是从0开始的,从后往前是从-1开始的,像这样:
下标: 0 1 2 3 4
-5 -4 -3 -2 -1
列表:[1, 2, 3, 4, 5]
5.1.1 修改东西
我们可以修改列表中的东西,比如:
l = [1, 2, 3, 4, 5]
l[2] = 6
print(l) # [1, 2, 6, 4, 5]
这样就可以了 。(是不是很简单)
5.1.2 增加东西
此外,如果要加入东西,可以使用append方法:
l = [1, 2, 3, 4, 5]
l.append(6)
print(l) # [1, 2, 3, 4, 5, 6]
除了append方法,还有一个extend方法,它们用法类似,但是结果不同
l = [1, 2, 3, 4, 5]
l2 = [1, 2, 3, 4, 5]
l.append([6, 7])
print(l) # [1, 2, 3, 4, 5, [6, 7]]
l2.extend([6, 7])
print(l) # [1, 2, 3, 4, 5, 6, 7]
在这里,[6,7]
严格意义上是一个元素,但是,append添加的是“一个元素”,所以它只能把[6,7]
这个列表中的列表添加进去了。而extend增加的是一堆元素,所以它就把[6,7]
中的东西一个一个添加进这个列表里了。
所以,append增加的是一个元素,而extend增加的是一堆元素。
5.1.3 删除东西
如果要删除列表里的东西,有很多方法。
5.1.3.1 del
用del删除,就这样就可以了:
l = [1, 2, 3, 4, 5]
del l[4]
print(l) # [1, 2, 3, 4]
注意,这里删除东西用的是下标,如果你不知道下标,想用某个元素的值来删除,可以用这个方法——
5.1.3.2 remove
remove方法可以删除第一个匹配的元素:
l = [1, 2, 3, 4, 5]
l.remove(3)
print(l) # [1, 2, 4, 5]
l = [1, 2, 3, 4, 3]
l.remove(3)
print(l) # [1, 2, 4, 3]
5.1.3.3 pop
pop方法可以删除最后一个元素,你也可以使用下标,不过要写在括号里面。
准确来说,pop真正的作用是把某个元素“拿出来”,然后再删除它。
l = [1, 2, 3, 4, 5]
l2 = [1, 2, 3, 4, 5]
l3 = [1, 2, 3, 4, 5]
l.pop()
print(l) # [1, 2, 3, 4]
l2.pop(2)
print(l2) # [1, 2, 4, 5]
n = l3.pop(3)
print(l3) # [1, 2, 3, 5]
print(n) # 4
5.1.4 列表的切片
列表的切片,可以把列表中的一部分取出来,然后再重新组合成一个新的列表。
l = [1, 2, 3, 4, 5]
l2 = l[1:3]
print(l2) # [2, 3]
要注意的是,列表的切片是“左闭右开”的,所以,你如果要获取列表中所有的东西,你就应该这样写:
l = [1, 2, 3, 4, 5]
l2 = l[:]
print(l2) # [1, 2, 3, 4, 5]
这里只有一个:
其实是一种简写,如果左边没有数字,那么代表从头开始,如果右边没有数字,那么代表到尾结束。
5.1.5 列表的排序
列表的排序,可以让列表中的元素按照某种顺序排列。
l = [5, 3, 1, 4, 2]
l.sort()
print(l) # [1, 2, 3, 4, 5]
如果想倒序排序,可以用reverse参数:
l = [5, 3, 1, 4, 2]
l2 = [5, 3, 1, 4, 2]
l.sort(reverse=True)
print(l) # [5, 4, 3, 2, 1]
但是,你应该看到还有一个reverse方法,不过它不是排序列表,而是直接把列表反过来。
5.1.6 双重列表
列表可以嵌套,也就是一个列表里面再放一个列表。如果你想要访问这个“列表中的列表”的元素,你就可以用两个下标:
l = [
[1, 2],
[3, 4],
[5, 6]
]
print(l[1][0]) # 3
print(l[2][1]) # 6
你可以看成第一个下标获取了一个列表,第二个下标获取这个列表的元素。
5.1.7 进阶一点:列表推导式
列表推导式,可以用一行代码生成一个新的列表。
具体语法如下:
要生成的东西 for 变量 in 序列 [if 条件]
中括号里是可选的。
举个例子:
l = [x**2 for x in range(1, 6)]
l2 = [x**2 for x in range(1, 6) if x % 2 == 0]
print(l) # [1, 4, 9, 16, 25]
print(l2) # [4, 16]
l中是1到5的平方,l2中增加了一个条件,也就是判断偶数和奇数,也就生成了1到5的偶数的平方。
5.2 字典
OK,列表终于讲完了,接下来讲讲字典。
所谓字典,可以理解成是一堆东西的集合,每个东西都有自己的名字,要访问字典中的东西,需要用到名字。
字典的创建,可以用{}
,然后用:
来分隔键(名字)和值,比如:
dic = {'name': 'Alice', 'age': 20, 'city': 'Beijing'}
5.2.1 修改值
字典的修改,和列表的修改差不多,不过是用键来修改值:
dic = {'name': 'Alice', 'age': 20, 'city': 'Beijing'}
dic['age'] = 21
print(dic) # {'name': 'Alice', 'age': 21, 'city': 'Beijing'}
5.2.2 增加键值对
字典增加键值对,不像列表一样,有append
和extend
方法,不过,你直接像修改值一样,就可以增加新的键值对了:
dic = {'name': 'Alice', 'age': 20, 'city': 'Beijing'}
dic['gender'] = 'female'
print(dic) # {'name': 'Alice', 'age': 20, 'city': 'Beijing', 'gender': 'female'}
5.2.3 删除键值对
字典删除键值对,可以用del或pop方法,参考列表就行了,只需要把下标替换成键名就行了QAQ。
好了,字典、列表都讲完了,这节课到此结束,同学们,
下课!
作者:WhereIsHero