扇贝编程python学习笔记-基础篇10

聚沙成塔 集腋成裘

第十二关

知识点复习
学习用时:50min
随堂测验+上机作业:50min
随堂作业正确率:2/3

1.列表元素的删除

  pop()方法 :列表.pop()返回列表指定位置的元素,并删除这个元素。
pop() 可以传入一个要删除的元素的索引,如果不传入,就默认为最后一个元素的索引。
  del 列表[索引] :删除列表的元素,支持正向和反向索引。
  remove() 方法:列表.remove() 可以在列表中找到 第一个 指定的值,然后将它删除。

food = ['炒鸡蛋', '手抓饭', '鸡肉卷', '汉堡', '烤肉', '粥']

# 用 del 语句去掉鸡肉卷
del food[2]

# 用 remove() 方法去掉烤肉
food.remove("烤肉")
# 打印出去掉上面两种食物后的食物清单
print(food)

2.列表分片

  列表分片用一对以冒号分隔的索引位置表示,格式为 列表[起始索引:结束索引]。比如要获取 students 中第三到第五个元素,也就是索引为 2,3,4 的元素,就要写成 students[2:5]

  截取前三个元素,就写成 list[:3];而截取最后四个元素,就写成 list[-4:];截取中间部分 list[a:b],分片长度就是 b - a。这些常用列表操作都极其直观和简便。

#对于从头开始的分片,Python 支持更加简便的写法,省去开始的 0

s = 'abcdefg'
#索0123456
# 返回从起始位置到索引位置 2 处的字符串切片
print(s[:3]) # 输出 'abc'

# 返回从第三个索引位置到结尾的字符串切片
print(s[3:]) # 输出 'defg'

#反向索引
print(s[-3:]) #输出efg

# 字符串逆序输出
print(s[::-1]) # 输出 'gfedcba'

3.列表常用方法

   对列表的操作,还有统计、排序、反转、复制、清空等。

操作方法
添加list.append(“刘多福”)
插入list.insert(0,“刘多福”)
索引list.index(“刘多福”)
移除元素list.pop(1)
移除元素list.remove(“刘多福”)
统计出现次数list.count(“刘多福”)
排序list.sort()
反转list.reverse()
复制list.copy()
清空list.clear()

   sort() 可以对列表内的元素进行排序,字符串列表的排序按照每个元素首字母的顺序来排序,数值列表的排序是按照数值大小从小到大进行排序。

str_list = ["liu", "duo", "fu"]
str_list.sort()
print(str_list)
# 输出:['duo', 'fu', 'liu']

num_list = [4, 2, 1, 9]
num_list.sort()
print(num_list)
# 输出:[1, 2, 4, 9]

  反转 reverse()、复制copy()、清空clear()

# reverse() 方法:将列表顺序反转,很实用
students = ["刘", "多", "福"]
students.reverse()
print(students)
# 输出:['福', '多', '刘']
#----------------------------------------------------------------------------------------------------
# copy() 方法:复制一个同样的列表
students1 = [1, 2, 3]
students2 = students1.copy()
print(students2)
# 输出:[1, 2, 3]

students1 = [1, 2, 3]
students2 = students1
students1[0] = '4'
print(students2)
# 输出:[4, 2, 3]
#students1 和 students2 只是同一个列表的不同代号,修改 student1 就是修改 student2,而copy()方法是新建一个列表

#----------------------------------------------------------------------------------------------------
# clear() 方法:清空列表
students = ["刘", "多", "福"]
students.clear()
print(students)
# 输出:[]
#clear() 方法也是类似的,直接使用 students = [] 并不是将原来的列表清空,而是将“students”这个名称冠到一个新建的空列表上,clear() 方法是直接对原来的那个列表进行操作,彻底清空。

4.练习

  这个练习错的惨了

  • 三个成绩表单:来统计贾宝玉和秦可卿他们到底在几门课里是倒数前三
# 定义函数,计算某个学生出现在倒数三名的总次数
def last_three(name):
  num1 = code_ranks[-3:].count(name)
  num2 = chinese_ranks[-3:].count(name)
  num3 = math_ranks[-3:].count(name)
  
  num = num1 +num2 + num3
  return num


print('贾宝玉排在倒数三名的次数是', last_three("贾宝玉"))
print('秦可卿排在倒数三名的次数是', last_three("秦可卿"))

  • 对分数进行排序;
  • 去掉最高分和最低分;
  • 对剩下的分数求和,然后算出平均分并将其打印出来。
scores = [92.1, 93.6, 88.2, 91.2, 85.7, 94.5, 95.1, 90.6]
scores.sort()
del scores[0]
del scores[-1] # scores.pop()

avg = sum(scores) / len(scores)
print (avg)
  • 10道题前 5 题每道题 5 分,后 5 题每道题 10 分。
data = ['对', '错', '错', '对', '错', '对', '对', '对', '错', '对']
data1 = data[:5]
data2 = data[-5:]
s1 = data1.count("对") * 5
s2 = data2.count("对") * 10
score = s1 + s2
print('刘多福的分数是' + str(score) + '分')
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值