0x04 列表
什么是列表?
简单的理解我们可以把列表理解为pyhon语言中数据存储的地方,他的定义如下
students = ['小明','小红','小刚']
取单个元素语法
取出多个元素语法
上面这种用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以让我们从列表中取出多个元素
总结规律就是:左右空,取到头;左要取,右不取
删改列表
增加元素:需要用到append()函数给列表增加元素,append的意思是附加,增补
- 列表中的元素可以是字符串、数字等,也可以是列表本身(即列表内部支持嵌套)
- append函数后的参数只要满足数量为一即可(单个列表也会视作一个元素)
- append后的元素,会添加在列表的末尾
删除元素:使用del关键字,语法为语法是:
del 列表名[元素的索引]
0x05 字典
什么是字典?
字典和列表的功能其实是一样的,都是用来存储数据,这也是他们的相同点
那么他们的不同点是什么呢?
students = ['小明','小红','小刚'] #列表
scores = {'小明':95,'小红':90,'小刚':90} #字典
从结构上来看
- 列表外层用的是中括号[],字典的外层是大括号{}
- 列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接
len()函数可以计算字典或者列表的长度,可以直接输出:print(len(scores))
那怎么打印字典里面的值呢?
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])
删改数据
删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值
当然值得注意的是,修改字典里面的内容,可以直接对键进行赋值
总结以上
不同点
一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表
而字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的
这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值
共同点
1、在列表和字典中,如果要修改元素,都可用赋值语句来完成
list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)
dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)
2、支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表
下面是列表嵌套列表
字典嵌套字典如下
scores = {
'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
}
print(scores['第二组']['小芳']) #输出88
相互嵌套,有没有感觉像json格式了
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'
# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。