Python 自学笔记(教程)(四)

  • 一、列表
    • 1. 什么是列表
    • 2. 从列表提取单个元素
    • 3. 从列表提取多个元素
    • 4. 给列表增加元素
    • 5. 给列表删除元素
  • 二、字典
    • 1. 什么是字典
    • 2. 从字典中提取元素
    • 3. 给字典增加元素
    • 4. 给字典删除元素
  • 三、列表和字典的区别
    • 1. 字典与列表的共同点
    • 2. 字典与列表的不同点
  • 传送门

一、列表

1. 什么是列表

先看一下列表在代码中是什么样子的

students = ['小王', '小李', '小明']

其中:[‘小王’, ‘小李’, ‘小明’] 就是一个列表
students 是列表名
“ = ” 是赋值符号
一个列表需要用中括号 [ ] 把各种数据括起来
中括号里面的每一个数据叫作元素
每个元素之间都要用英文逗号隔开
知道了列表的怎么定义赋值现在看一看列表怎么输出打印
如果要打印整个列表:

students = ['小王', '小李', '小明']
print(students)

屏幕打印:

[‘小王’, ‘小李’, ‘小明’]

列表是可以存放不同类型的数据的
比如:

information = ['小王', 19, 178.5]

2. 从列表提取单个元素

要打印列表中某一个元素:

students = ['小王', '小李', '小明']
print(students[1])

屏幕打印:

小李

注意在程序设计语言中,数数是从 0 开始

students 0 1 2 小王 小李 小明

3. 从列表提取多个元素

先看一下代码,注意有无英文冒号 : 的情况下的区别

num = [0, 1, 2, 3, 4]
print(num[:])
print(num[2:])
print(num[:2])
print(num[1:3])
print(num[2:4])

屏幕打印:

[0, 1, 2, 3, 4]
[2, 3, 4]
[0, 1]
[1, 2]
[2, 3]

上面这种用英文冒号来提取多个列表元素的方法叫切片
切片的使用方法为:

  • 哪边空取哪边:
    1. 当冒号左边为空时,从列表开头取到冒号
    2. 当冒号右边为空时,从冒号取到列表结尾
  • 左取右不取:
    1. 若冒号左边有数字,那么这个数字对应的元素要取
    2. 若冒号右边有数字,那么这个数字对应的元素不取
  • 两边都不空取交集

4. 给列表增加元素

给列表增加元素需要用到 append() 函数
先试试向列表中添加单个元素:

num = [1, 2]
num.append(3)
print(num)

屏幕打印:

[1, 2, 3]

再来试试添加多个元素:

num = [1, 2]
num.append(34)
print(num)

屏幕打印:

TypeError: append() takes exactly one argument (2 given)

这句话的意思是:append() 函数的括号里只能接受一个参数,但却给了两个,所以报错了
注意:

  • 使用 append() 函数添加元素入列表时,每次只能添加一个元素,单个列表也算是一个元素
  • 列表中的元素可以是字符串、数字,也可以是列表本身(即列表内部支持嵌套)
  • append() 函数添加的元素会添加在列表末尾

5. 给列表删除元素

给列表删除元素需要用到 del 语句
del 列表名[元素位置]
先试试删除列表中单个元素:

num = [1, 2, 3]
num.del(3)
print(num)

屏幕打印:

[1, 2]

先试试删除列表中多个元素:

num = [1, 2, 3]
num.del(13)
print(num)

屏幕打印:

[2]

由此可见:del() 函数与 append() 不同就在于 del() 函数一次可以删除单个或多个元素,而 append() 函数一次只能添加单个元素
且 del() 函数也可以使用切片

二、字典

1. 什么是字典

我们先在代码里看看字典长什么样:

information = {'小王':90, '小李':85, '小明':95}

其中:{‘小王’:90, ‘小李’:85, ‘小明’:95} 就是一个列表
information 是字典名
“ = ” 是赋值符号
一个列表需要用大括号 { } 把各种数据括起来
我们已经知道了在列表中 [ ] 里的元素是一个一个的
而在字典中大括号里面的元素是一个一个的键值对
键与值之间用英文冒号连接
如:‘小王’:90
同时每个元素之间也都要用英文逗号隔开
对于列表和字典的长度可以使用 len() 函数来计算

students = ['小王', '小李', '小明']
information = {'小王':90, '小李':85, '小明':95}
print(len(students))
print(len(information))

屏幕打印:

3
3

即该列表和字典的长度均为 3
使用字典还需要注意:
字典里的键是唯一补课重复的,而值可以重复

2. 从字典中提取元素

从字典中提取元素的方法和列表有些相似

information = {'小王':90, '小李':85, '小明':95}
print(information['小李'])

屏幕打印:

90

再次强调字典的元素是键值对
所以在提取时使用键即可提取到其对应的值
而要完整打印字典则可以像这样:

information = {'小王':90, '小李':85, '小明':95}
print(information)

屏幕打印:

{‘小王’:90, ‘小李’:85, ‘小明’:95}

3. 给字典增加元素

要在字典中增加元素可以直接为键赋值

information = {'小王':90, '小李':85, '小明':95}
information['小红'] = 90
print(information)

屏幕打印:

{‘小王’:90, ‘小李’:85, ‘小明’:95, ‘小红’:90}

需要注意的是:
增加的元素依然是从字典尾部添加

4. 给字典删除元素

给字典删除元素可以和列表一样使用 del 语句
del 字典名[键]
比如:

information = {'小王':90, '小李':85, '小明':95}
del information['小李']
print(information)

屏幕打印:

{‘小王’:90, ‘小明’:95}

三、列表和字典的区别

1. 字典与列表的共同点

  • 修改列表和字典中的元素都需要使用赋值语句
students = ['小王', '小李', '小明']
students[1] = '小红'
print(students)

information = {'小王':90, '小李':85, '小明':95}
information['小明'] = 80
print(information)

屏幕打印:

[‘小王’, ‘小红’, ‘小明’]
{‘小王’:90, ‘小李’:85, ‘小明’:80}

  • 列表和字典都可以随意嵌套,除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
    比如列表嵌套列表:
students = [['小明', '小红', '小刚', '小美'], ['小强', '小兰', '小伟', '小芳']]

那么新的问题来了,怎么才可以取出这个列表里的 ‘小美’
可以这么办:

students = [['小明', '小红', '小刚', '小美'], ['小强', '小兰', '小伟', '小芳']]
print(students[0][3])

屏幕打印:

‘小美’

再比如字典嵌套字典:

information = {
    '第一组':{'小明':95, '小红':90, '小刚':100, '小美':85},
    '第二组':{'小强':99, '小兰':89, '小伟':93, '小芳':88}
    }

对于类似嵌套建议在写代码时注意排版把嵌套关系展示清楚
在这里要取出小美的信息可以这么做:

information = {
    '第一组':{'小明':95, '小红':90, '小刚':100, '小美':85},
    '第二组':{'小强':99, '小兰':89, '小伟':93, '小芳':88}
    }
print(information['第一组']['小美'])

屏幕打印:

85

最后在看一下字典列表相互嵌套:

students = {
    '第一组':['小明', '小红', '小刚', '小美'],
    '第二组':['小强', '小兰', '小伟', '小芳']
    }
print(students['第一组'][3])

information = [
    {'小明':95, '小红':90, '小刚':100, '小美':85},
    {'小强':99, '小兰':89, '小伟':93, '小芳':88}
    ]
print(information[0]['小美'])

屏幕打印:

‘小美’
85

总之一定要记住在字典中是键名定位,列表中时元素位置定位

2. 字典与列表的不同点

  • 列表中的元素的位置关系是不可随意更改的,列表是有序排列,用元素位置定位元素,而字典是无序排列,用唯一的键定位元素

传送门

Python 自学笔记(教程)(一)
Python 自学笔记(教程)(二)
Python 自学笔记(教程)(三)

更多推荐

Python 自学笔记(教程)(四)