微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 以练促学之 List 篇

文章目录

以练促学

以练促学可能是巩固所学的最佳方法之一,当然,学 Python 也不例外。继昨天在 CSDN 发布 《Python 基础备忘之 List 篇》 的知识整理后,继续整理 List 知识相关的练习,以练促学

本文一共整理了 10 题 Python List 练习题,所涵盖知识包括

  1. Python List 操作;
  2. Python List 函数
  3. Python List 切片;
  4. Python List 推导式;

这些练习题都收集自网络,灵感来源于 Edabit ,Edabit 是收集各种编程语言(JS、Python、Ruby、Swift、PHP、Java、C#、C++)练习题的网站,可以在线编码,然后验证答案。其官方 “About Edabit” 中有一句介绍是:

We’re like Duolingo for learning to code.

大概是像 Duolingo (多邻国)学习外语一样学习编码吧。之所以喜欢 Edabit 的原因是,在每道练习中的 Resources 里都包含了这道题的相关联知识,这样就能清楚知道练习和哪些知识有关,在大量练习后就能更牢固掌握所学知识了。

练习题的描述:

练习题的描述

练习题的相关知识点资源列表:

练习题的相关知识点资源列表

遗憾的是 Edabit 现在是有限免费使用,需要成为 Pro 用户才能“畅通无阻”,而且价格小贵,重要的是暂时还不支持国内的信用卡支付。所以,如果我的练习题是来自 Edabit 的话,并不能查看答案,那么答案就有可能是错误的,也欢迎在评论区批评指正

练习题的答案,只有 Pro 用户才能查看所有题目的答案

练习题的答案

练习 1,在 Python 中反转给定的 List

l = [1, 2, 3, 4, 5]

预期结果:

[5, 4, 3, 2, 1]

解决方案:

# 切片方法
l = l[::-1]

# sort(*, key=None, reverse=False) 方法
l.sort(reverse = True)

练习一

练习 2,按索引连接两个 List

l1 = ["M", "na", "i", "Ke"]
l2 = ["y", "me", "s", "lly"]

预期结果:

['My', 'name', 'is', 'Kelly']

解决方案:

l3 = [i + j for i, j in zip(l1, l2)]

练习二

练习 3,给出一个数字类型的 Python List。将 List 中的每一项转换成它的平方

l = [1, 2, 3, 4, 5, 6, 7]

预期结果:

[1, 4, 9, 16, 25, 36, 49]

解决方案:

l =  [x * x for x in l]

练习三

练习 4,连接两个 List

l1 = ["Hello ", "take "]
l2 = ["Dear", "Sir"]

预期结果:

['Hello Dear', 'Hello Sir', 'take Dear', 'take Sir']

解决方案:

l3 = [x+y for x in l1 for y in l2]

练习四

练习 5,给出两个 Python List。同时迭代这两个 List,第一个 List 以原始顺序显示,第二个 List 以相反顺序显示

l1 = [10, 20, 30, 40]
l2 = [100, 200, 300, 400]

预期结果:

10 400
20 300
30 200
40 100

解决方案:

for x, y in zip(l1, l2[::-1]):
    print(x, y)

练习五

练习 6,从字符串 List 中删除空字符串

l1 = ["Mike", "", "emma", "Kelly", "", "Brad"]

预期结果:

["Mike", "emma", "Kelly", "Brad"]

解决方案:

l2 = list(filter(None,l1))

练习六

练习 7,在下面的 Python List 中 6000 之后添加元素 7000

l1 = [10, 20, [300, 400, [5000, 6000], 500], 30, 40]

预期结果:

[10, 20, [300, 400, [5000, 6000, 7000], 500], 30, 40]

解决方案:

l1[2][2].append(7000)

练习七

练习 8,扩展嵌套字符串 List

l1 = ["a", "b", ["c", ["d", "e", ["f", "g"], "k"], "l"], "m", "n"]

预期结果:

['a', 'b', ['c', ['d', 'e', ['f', 'g', 'h', 'i', 'j'], 'k'], 'l'], 'm', 'n']

解决方案:

subList = ["h", "i", "j"]
l1[2][1][2].extend(subList)

练习八

练习 9,给定一个 Python List,在 List 中找到值 20,如果它存在,用 200 替换它。只更新第一次出现的值

l1 = [5, 10, 15, 20, 25, 50, 20]

预期结果:

[5, 10, 15, 200, 25, 50, 20]

解决方案:

index = l1.index(20)
l1[index] = 200

练习九

练习 10,给定一个 Python List,从 List 中删除所有出现 20 的值

l1 = [5, 20, 15, 20, 25, 50, 20]

预期结果:

[5, 15, 25, 50]

解决方案:

def removeValue(l, val):
   return [value for value in l if value != val]
   
l2 = removeValue(l1, 20)

练习十

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐