python基础语法
第五课
一、列表(list)【可边长数组】
(一)列表中变量类型“可不唯一”
list1 = ['小明', 18, 1.70]
print(list1)
输出:
['小明', 18, 1.7]
(二)元素提取,“左闭右开”
list2 = [5,6,7,8,9]
print(list2)
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])
输出:
[5, 6, 7, 8, 9]
[5, 6, 7, 8, 9]
[7, 8, 9]
[5, 6]
[6, 7]
[7, 8]
(三)切片与取一个元素,“返回值的类型不一样”
students = ['小明','小红','小刚']
print(type(students[2]))
print(type(students[:2]))
输出:
<class 'str'>
<class 'list'>
(四)append()方法,只能在最后添加“一个”变量
list3 = [1,2]
list3.append(3)
print(list3)
list3.append([4,5])
print(list3)
输出:
[1, 2, 3]
[1, 2, 3, [4, 5]]
(五)del,删除元素
students = ['小明','小红','小刚','小美']
del students[0]
print(students)
输出:
['小红', '小刚', '小美']
二、字典
(一)len()函数
列表的长度是 元素 个数;字典的长度是 键值对 个数
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))
输出:
3
3
(二)更改值
字典中的键具备唯一性,键唯一,值可重复。
也就是说字典里不能同时包含两个’小明’的键,但却可以有两个同为90的值。
但是,你输入了相同的键,那么字典里原来这个键对应的值会被替换掉
scores = {'小明':95,'小红':90,'小刚':90}
scores['小刚'] = 92
print(scores)
输出:
{'小明': 95, '小红': 90, '小刚': 92}
(三)提取元素
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])
输出:
95
(四)删除与增加键值对
scores = {'小明': 95, '小红': 90, '小刚': 90}
del scores['小明']#删除
print(scores)
scores['小明'] = 100#增加
print(scores)
输出:
{'小红': 90, '小刚': 90}
{'小红': 90, '小刚': 90, '小明': 100}
三、列表与字典的异同
(一)列表中元素有序,字典中元素无序
这也是为什么两者数据读取方法会不同的原因:
列表有序,要用 偏移量定位 ;字典无序,便通过 唯一的键来取值 。
students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)
#false
scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)
#true
输出:
False
True
(二)都支持任意嵌套
除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][1])
输出:
小兰
此时列表嵌套列表,变成了二维数组
同理,字典嵌套字典:
scores = {
'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
}
print(scores['第一组']['小刚'])
输出:
100
混合嵌套:
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(students['第一组'][2])
print(scores[0]['小刚'])
四、补充:元组
元组由小括号框起,除 不能改变元素 外,其他性质与列表相似
tuple1 = ('A','B')
INF、练习题
(一)找到那只狼
练习目标
在层层嵌套的各种数据类型中,准确地提取出你需要的数据。
练习要求
在未来世界,一个新建的童话镇吸引了不少人入住。
不过,在人群里隐藏着一只狼,会威胁大家的安全。
童话镇的镇长希望你能找到它,并揭发其身份。
用程序语言就是说:列表中有个字符串是“狼”,将其打印出来吧。
#变量定义
townee = [
{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
]
INF+1、练习题答案
(一)找到那只狼
考察点:
1.数据的嵌套
2.数据的提取
townee = [
{'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公主']},
'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
]
print(townee[5][1]['反面角色'])