聚沙成塔 集腋成裘
第十三关
知识点复习 学习用时:40min 随堂测验+上机作业:50min 随堂作业正确率:4/4
1.列表元素脚本操作符
python表达式 | 结果 | 描述 |
---|
len([1, 2, 3]) | 3 | 长度 | [1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 | [‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 | 3 in [1, 2, 3] | True | 元素是否存在于列表中 | for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
??此表来自于菜鸟教程,链接:https://www.runoob.com/python/python-lists.html
??in用来判断一个元素是否在一个列表中,格式为 元素 in 列表。这是一个布尔表达式,如果元素在列表中,结果为布尔值 True,反之为 False。 ??组合列表元素要注意用加法生成的列表的元素顺序,在 + 号前的列表元素排在新列表的前面,在 + 后的列表元素在新列表的后面。
2.元组tuple
??Python的元组与列表类似,不同之处在于元组的元素不能修改。
外观上:元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 注:对于仅一个元素的元组,我们要特意加个逗号来声明:这是个元组。
single = (1)
print(type(single))
# 输出:<class 'int'>
single = (1,)
print(type(single))
# 输出:<class 'tuple'>
??与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
python表达式 | 结果 | 描述 |
---|
len((1, 2, 3)) | 3 | 计算元素个数 | (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 连接 | (‘Hi!’) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 复制 | 3 in (1, 2, 3) | True | 元素是否存在 | for x in (1, 2, 3): print x, | 1 2 3 | 迭代 |
??如果真的需要修改元组中的元素怎么办?
思路:先用 list() 函数把元组转换成列表,将元素修改完毕后,再用 tuple() 函数转换回元组.
students = ('金', '多', '福')
# 用 list() 函数给数据“解锁”,生成一个相同元素的新列表
students_list = list(students)
# 在新列表中修改元素
students_list[0] = '刘'
# 两次给数据“上锁”
students = tuple(students_list)
print(students)
# 输出:('刘', '多', '福')
3.列表的扩展操作
?? zip() 函数的作用是将两个长度相同的列表合并起来,相同位置的元素会被一一组对,变成一个元组。结果返回一个组合好的打包对象。
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 打包为元组的列表
print(zipped)
# 输出 [(1, 4), (2, 5), (3, 6)]
?? enumerate() 函数:“enumerate”单词本身意思是“枚举、数数”。所以对应的函数功能,就是一个一个地将列表中的元素数出来。它返回的是一个枚举对象,也需要我们用 list() 函数转换回列表,一般用在 for 循环当中。
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
season_id = list(enumerate(seasons))
print(season_id)
#输出[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
season_idd = list(enumerate(seasons, 1))
# 下标从 1 开始
print(season_idd)
# 输出[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
4.练习
group1 = [198, 133, 154, 166]
group2 = [188, 172, 119, 142]
group3 = [168, 153, 131, 128]
# 将三组的成绩合并到一起
gtoup_1 = group1 + group2 + group3
# 对合并后的成绩从高到低排序
gtoup_1.sort()
gtoup_1.reverse()
# 将合并后的成绩用数字枚举出来,并转换成列表放进 run_rank 中
run_rank = list(enumerate(gtoup_1,1))
# 打印最后的排名和成绩
print(run_rank)
?? 输出学生列表midterm_rank中的前三
#练习结果
top = [1,2,3]
zip_add = zip(top,midterm_rank)
print(list(zip_add))
#参考答案
top3 = midterm_rank[:3]
print(list(enumerate(top3,1)))
|