Python教程:列表与字典详解

文章目录

  • 5.1 列表
  • 5.1.1 修改东西
  • 5.1.2 增加东西
  • 5.1.3 删除东西
  • 5.1.3.1 del
  • 5.1.3.2 remove
  • 5.1.3.3 pop
  • 5.1.4 列表的切片
  • 5.1.5 列表的排序
  • 5.1.6 双重列表
  • 5.1.7 进阶一点:列表推导式
  • 5.2 字典
  • 5.2.1 修改值
  • 5.2.2 增加键值对
  • 5.2.3 删除键值对
  • 为什么有人会问我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 增加键值对

    字典增加键值对,不像列表一样,有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方法,参考列表就行了,只需要把下标替换成键名就行了QAQ。

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

    作者:WhereIsHero

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python教程:列表与字典详解

    发表回复