聚沙成塔 集腋成裘



文章目录

  • 第十三关
  • 1.列表元素脚本操作符
  • 2.元组tuple
  • 3.列表的扩展操作
  • 4.练习


第十三关

知识点复习
学习用时: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

迭代

  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)))