【风变编程】第五课笔记


 

第五课

链接:[ 全文章目录 ]

一、列表(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]['反面角色'])

 
 
链接:[ 全文章目录 ]

发布了13 篇原创文章 · 获赞 102 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_42159233/article/details/86529883