欢迎来到我的《Python 扫盲栏目》,力求用最短的时间,最简明的文字,让你了解、掌握 Python 基础语法。
我分享的笔记都是自己学习时的记录整理而成,不保证有多厉害,但还是那两句话:
不要嫌弃内容简陋,循序渐进嘛!
不要嫌弃知识简单,动手敲敲吧!
第 0 期:《做个尝试,从零到一》
第 1 期:《铺石造路,我学会了输入输出》
第 2 期:《玩转数据,这是第一步》
第 3 期:《学会判断,告诉电脑怎么做》
第 4 期:《数据升级,列表字典能处理》
列表和字典可以存储大量数据,以供计算机读取、操作。
列表
eg.
# 这就是一个列表
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
# 这里是一个循环语句
for i in menu:
print('我想吃' + i)
输出:
我想吃水煮鱼
我想吃火锅
我想吃美蛙
我想吃青菜
我想吃馒头
以上就是列表的使用,有了列表我们可以只需要一个变量就可以存放多个数据了。
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
中:menu
是一个变量,=
表示赋值,['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
是一个列表。
列表就是用中括号 []
把各种数据括起来,列表里的每一个数据叫做元素,每个元素之间使用英文逗号分隔。
列表可以直接打印:
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu)
输出:
['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
注意:一个列表里可以包含多个、不同数据类型的数据。
eg.
person = ['李明', 17, 1.78]
从列表中提取元素
在列表中,每个元素都有自己的位置编号,也叫偏移量。
偏移量从 0 开始计算,我们可以通过偏移量获取列表中的每一个元素:
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu[2])
# 列表名后加带有偏移量的中括号,即可取到相应元素
输出:
美蛙
我们也可以同时从一个列表中获取多个元素:
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu[:])
print(menu[1:])
print(menu[:1])
print(menu[1:3])
print(menu[2:3])
输出:
['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
['火锅', '美蛙', '青菜', '馒头']
['水煮鱼']
['火锅', '美蛙']
['美蛙']
以上通过 :
来截取列表中的元素的方法叫做切片,通过切片我们就可以从列表中取得多个元素。
切片的规则:
- 冒号左边空,就从偏移量为 0 的元素开始取
- 冒号右边空,就要取到列表最后一个元素
- 冒号左边有数字,取出对应数字的偏移量的元素
- 冒号右边有数字,不取出对应数字的偏移量的元素
注意:通过偏移量取元素是可以直接取到列表中的元素,但是切片则只是截取了列表的一部分,取出的还是一个列表。
增加/删除元素
我们可以通过几个函数实现列表中元素的增加或者删除。
append()
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu.append('统统 10 元!')
print(menu)
menu.append(['李明', 17, 1.78])
print(menu)
输出:
['水煮鱼', '火锅', '美蛙', '青菜', '馒头', '统统 10 元!']
['水煮鱼', '火锅', '美蛙', '青菜', '馒头', '统统 10 元!', ['李明', 17, 1.78]]
append() 函数每次只能接收一个参数,也就是使用 append() 给列表增加元素只能一个一个元素地增加。
Tags:
- 列表中的元素可以是字符串、数字等,也可以是列表(列表的嵌套)
- append() 函数接收的参数只能是一个,一个列表也算是一个参数
- 通过 append() 函数向列表添加元素,新添加的元素会添加在列表末尾
由此还可知,列表的长度是可变的,且理论上容量无限,支持任意嵌套。
del 语句
del 语句可以根据索引而不是值从列表中删除一个元素,这与 pop 语句不同(pop 语句会返回一个值),del 语句也可以用于从列表中删除片段或者清除整个列表。
del 语句是非常方便的,既能删除一个元素,也能一次删除多个元素(类似于切片原理)
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
del menu[2]
print(menu)
del menu[1:3]
print(menu)
输出:
['水煮鱼', '火锅', '青菜', '馒头']
['水煮鱼', '馒头']
字典
对于几组数据一一对应的数据需要存储时,一个列表是不够用的,这个时候就需要使用字典。
eg.
scores = {'李明':99, '川普':0, '旺财':87}
以上,scores
是变量名,=
表示赋值,{'李明':99, '川普':0, '旺财':87}
就是一个字典,字典内部依然使用英文逗号 ,
分隔,外部使用大括号 {}
括起来。
字典里的元素是由一个一个的键值对组成的,键与值使用英文冒号连接,键(key):'李明'
、值(value):99
、键值对:'李明':99
。
注意:字典中的键是唯一不可重复的,但是值是不唯一可以重复的。
从字典中提取元素
提取字典中的元素并不能像列表一样使用偏移量来索引,字典的索引依靠键。
eg.
scores = {'李明':99, '川普':0, '旺财':87}
print(scores['川普'])
输出:
0
注意:使用键索引来提取值时,变量名后面接的是中括号 []
。
增加/删除元素
eg.
scores = {'李明':99, '川普':0, '旺财':87}
del scores['川普']
print(scores)
scores['川普'] = 59
print(scores)
输出:
{'李明':99, '旺财':87}
{'李明':99, '旺财':87, '川普':59}
以上,字典删除元素依然是使用 del 语句,通过 del 字典名[键]
就可以删除对应的键值对,而新增键值对则直接赋值 字典名[键] = 值
。
新增的键值对依然是增加在字典的末尾,而且我们也可以通过直接赋值的方式修改键对应的值。
eg.
scores = {'李明':99, '川普':0, '旺财':87}
scores['川普'] = 59
print(scores)
输出:
{'李明':99, '川普':59, '旺财':87}
列表和字典的异同
列表和字典有许多相似之处,但是又有所不同。
异
列表中的元素是有自己的位置的,即使两个列表的元素完全相同,但是元素排列的位置不同,这两个列表也是完全不同的,即列表中的元素是有序的,字典中的元素是无序的,这也是为什么列表可以通过偏移量来引索到元素,而字典就不行。
eg.
menu1 = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu2 = ['水煮鱼', '美蛙', '火锅', '青菜', '馒头']
print(menu1 == menu2)
scores1 = {'李明':99, '川普':0, '旺财':87}
scores2 = {'李明':99, '旺财':87, '川普':0}
print(scores1 == scores2)
输出:
False
True
同
① 无论是列表还是字典,都可以通过赋值语句来对元素进行修改。
eg.
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu[2] = '川普'
print(menu)
scores = {'李明':99, '川普':0, '旺财':87}
scores['川普'] = 59
print(scores)
输出:
['水煮鱼', '火锅', '川普', '青菜', '馒头']
{'李明':99, '川普':59, '旺财':87}
② 列表和字典都支持任意嵌套,除了一般的数据类型以外,列表可以嵌套其他列表和字典,字典也可以嵌套其他字典和列表。
eg.
# 列表嵌套列表
menu = [
['水煮鱼', '火锅', '美蛙'],
['青菜', '馒头']
]
# 获取 '青菜'
print(menu[1][0])
输出:
青菜
这个时候列表里元素的获取就有一点不同了,需要一层一层获取到,如上。
eg.
# 字典嵌套字典
scores = {
'李明':{'身高':180, '体重':70},
'川普':{'身高':150, '体重':99.9},
'旺财':{'身高':172, '体重':59}
}
# 获取 '川普' 的 '身高'
print(scores['川普']['身高'])
输出:
150
下面是列表和字典相互嵌套:
eg.
# 字典里嵌套列表
scores = {
'李明':[180, 70],
'川普':[150, 99.9],
'旺财':[172, 59]
}
# 获取某一元素同理
print(scores['川普'][0])
# 列表里嵌套字典
menu = [
{'水煮鱼':80, '火锅':230, '美蛙':150},
{'青菜':2, '馒头':0.5}
]
# 获取某一元素同理
print(menu[0]['火锅'])
输出:
230
给个免费评分我能写得更好!