Python教学:5.列表与字典

为什么有人会问我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]
l.sort(reverse=True)
print(l) # [5, 4, 3, 2, 1]

但是,你应该看到还有一个reverse方法,不过它不是排序列表,而是直接把列表反过来。也就是从 2 , 3 , 1 , 4 , 5 2, 3, 1, 4, 5 2,3,1,4,5变成了 5 , 4 , 1 , 3 , 2 5, 4, 1, 3, 2 5,4,1,3,2

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 增加键值对

字典增加键值对,不像列表一样,有appendextend方法,不过,你直接像修改值一样,就可以增加新的键值对了:

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方法,参考列表就行了,只需要把下标替换成键名就行了。

好了,字典、列表都讲完了,这节课到此结束,同学们,
下课!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值