python 组合数据类型

本文介绍了Python中的列表数据结构,包括创建、删除、访问和修改等基本操作,以及原地操作和非原地操作的概念。讨论了列表的排序算法、常用的列表函数如len(),max(),min()等,并提到了列表推导式和切片的使用。文章还通过一个决赛成绩计算的案例展示了列表在实际问题中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一章的内容主要是列表、元组、字典和集合的理解和相关操作。

4.1 列表

列表的创建、删除、访问及修改;如下图所示代码:

接下来是列表的一些常用操作,包括修改列表元素、增加列表元素、删除列表元素、检索列表元素、排序列表元素、复制列表、删除列表。

有一些函数是c语言里没有的,有一个比较好懂的概念叫做 原地操作和非原地操作:

 

排序和统计还是很好用的,但是不知道这个排序的背后用的是什么算法,快速排序吗?sort 快不快也不知道。

4.1.4 列表对象支持的运算符

1、加法运算符 + :+单独使用不属于原地操作,会返回新的列表并且涉及大量元素的复制,效率很低。 

使用符合运算符 +=实现为列表追加元素的操作属于原地操作。代码如下:

2、乘法运算符 (与加法类似)

3、成员测试运算符(in or not in)

4.1.5 列表操作函数

1、len函数:返回个数

2、max()函数:返回最大值

3、min()函数:返回最小值

4、sum()函数:返回列表中的元素的和

5、zip()函数:将多个列表中的元素重新组合为元组并返回这些元组的zip对象,如下代码:

6、map函数:将func函数一次映射到列表list的每个元素中,并返回一个可迭代的map对象,代码如下:

7、filter函数:根据func函数的返回值对list列表中的元素进行过滤,代码如下:

4.1.6 列表推导式

下面给三个相同的运算结果,不同的表达方式。

这两种的表达方式是一样的,但是可以看出来第一种的表达方式更简洁,我总是会忘记缩进并且会犯一些很傻的错误。

4.1.7 列表切片

利用索引可以提取列表中的某一元素,而利用切片可以提取列表中的部分元素。

1、使用切片获取列表中的部分元素

需注意默认从索引为0的元素开始,负整数为逆向提取元素并组成切片。

 

 终点表示的是结束的位置但不包括该位置。

2、使用切片为列表增加元素

3、使用切片替换和修改列表中的元素

4、使用切片删除列表中的元素

哈哈哈哈,这本书不教这几种操作了,它说不建议初学者过多使用这些技巧,为什么,怕我们搞混吗,哈哈哈哈。

4.1.8 列表应用案例

模拟决赛现场最终成绩计算的过程,代码如下:

while True:
    n = eval(input("请输入评委人数: "))
    if n >= 5:
        print("请各个评委打分")
        break
    else:
        print("有效评委人数为5人,请重新输入")
scores = []
for i in range(1,n+1):
    while True:
        score = float(input("请输入第{}个评委给出的分数: ".format(i)))
        if 0<=score<= 100:
            scores.append(score)
            break
        else:
            print("分数不符合规范,请重新输入")
            continue
max_score = max(scores)
min_score = min(scores)
scores.remove(max_score)
scores.remove(min_score)
final_score = round(sum(scores)/len(scores),2)
print("去掉一个最高分{:.2f},去掉一个最低分{:.2f},最后的得分是:{:.2f}".format(max_score,min_score,final_score))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值