如果你关注我已经有一段时间,那你就会知道我经常发布用于解决日常问题的Python代码片段。好吧,我想我终于可以在一篇包含这些资源链接的文章中聚合所有这些回复了。
请注意,我想要开始将本文中的所有代码片段移植到Jupyter Notebook上。如果你对这类项目感兴趣,请直接访问GitHub 仓库。我将不胜感激!
在本节中,我们将研究会出现的各种常见场景,以及如何使用Python代码解决这些问题。具体来说,我将对这些问题进行简单解释,并给出一系列的Python代码解决方案。然后,我将链接出所有我拥有的资源。
有时候,当我们拥有一个字典时,我们想要对它的键和值进行反转。当然,我们也会存在诸如“我们要怎样处理重复的值呢?”和“如果这些值是不可哈希的呢?”这样的担忧。尽管如此,在简单的情况下,这里有几个解决方案:
想要了解更多的解释,请参阅我题为“如何在Python中翻转一个字典”的文章。它包括每个解决方案的分解,它们的性能指标,以及它们何时适用。同样,我还有一个YouTube的视频,也讨论了同样的话题。
假设你有两个列表,你想按元素把它们合并成一个列表。换句话说,你希望将第一个列表的第一个元素和第二个列表的第一个元素相加,并将结果存储在一个新列表中。有几种方法可以做到这一点:
如果你想要更深入的解释,请查看我的文章“如何在Python中对两个列表的元素求和”,其中甚至包括一个有趣的挑战。同样,你也可能会从我的相同主题的YouTube视频中得到一些有价值的信息。
Python的一个令人惊奇的好处是它管理文件非常容易。与JAVA不同,Python有一个内置的文件读写语法。因此,检查一个文件是否存在是一个相当简单的任务:
与往常一样,你可以在我题为“在Python中如何检查一个文件是否存在”的文章中了解更多关于这些解决方案的信息,这篇文章提供了三个解决方案和性能指标。
在前面,我们讨论了在Python中对两个列表求和。事实证明,我们可以用两个列表做很多事情。例如,我们可以尝试将一个映射到另一个来创建一个字典。
与许多此类问题一样,这里也存在一些问题。例如,如果两个列表的大小不相同怎么办?同样,如果键不是唯一的或可哈希的呢?也就是说,在简单的情况下,有一些直接的解决方案:
同样,你可以在我题为“在Python中如何将两个列表转换为一个字典”的文章中找到对这些解决方案的解释和更多信息。如果你是一个视觉达人,你可能会更喜欢我的YouTube视频,它也涵盖了将列表映射列字典的内容。
如果你来自Java或C之类的静态类型语言,你可能会为Python中缺少静态类型而烦恼。确实,不知道变量的类型有时会令人沮丧,但也有好处。例如,我们可以通过类型灵活性来检查一个列表是否为空——在其他方法中:
如果你想更多地了解这三种解决方案,请参阅我题为“如何在Python中检查空列表”的文章。“如果你有困难,请看看我的YouTube视频,里面也涵盖了同样的话题。
我最喜欢的编程主题之一是复制数据类型。毕竟,在我们生活的这个基于引用的世界中,这并不容易,Python也是如此。幸运的是,如果我们想复制一个列表,这里有几种方法可以完成:
当谈到克隆时,注意浅拷贝和深拷贝的区别是很重要的。幸运的是,我有一篇关于这个主题的文章。
最后,你可以在我的文章“如何在Python中克隆一个列表”中找到更多关于上述解决方案的信息。此外,你可能会在我的题为“在Python中复制匹兹堡企鹅列表的7种方式”的相关YouTube视频中发现更多信息。
既然我们在讨论有关列表的主题,那么我们来讨论一下获取列表的最后一项。在大多数语言中,这涉及到一些涉及列表长度的复杂数学表达式。如果我告诉你Python中有几个更有趣的解决方案呢?
与往常一样,你可以从我题为“在Python中如何获取一个列表的最后一项”的文章了解更多关于这些解决方案的信息,其中包含一个质疑、性能指标和一个YouTube视频。
有时在创建脚本时,你希望能够通过单击一个按钮就可以方便地运行它。幸运的是,有几种方法可以做到这一点。
首先,我们可以创建一个带有以下设置的windows快捷方式:
同样,我们也可以创建一个带有以下代码的批处理文件:
最后,我们可以创建一个带有以下代码的bash脚本:
如果你正在寻找更多的解释,请查看标题为“如何创建一个带有参数的Python脚本快捷方式”的文章。
排序是计算机科学中一项常见的任务,你迫切想要知道如何去实现它。尽管大多数课程都高度关注排序算法,但没有人真正告诉你排序实际上有多复杂。例如,对数字排序很简单,但是对字符串排序呢?我们如何确定一个合适的顺序呢?幸运的是,Python中有很多选项:
如果你对这些解决方案的工作原理感到好奇,或者你只是想知道其中的一些潜在风险,请参阅我题为“如何在Python中对字符串列表进行排序”的文章。
Python的一个比较有趣的用例是数据科学。然而,不幸的是,这意味着你需要处理大量各种格式的原始数据,比如文本文件和电子表格。幸运的是,Python有许多用于读取不同文件格式的内置实用程序。例如,我们可以轻松解析电子表格:
在本例中,我们尝试在一个字典列表中获取输出。如果你想了解更多有关其运行原理的信息,请参阅题为“如何在Python中解析电子表格”的完整文章。
一旦你有了一个字典列表之后,你可能希望按特定的顺序组织它们。例如,如果这些字典有一个日期键,那我们可以尝试按时间顺序排序。幸运的是,排序是另一个相对轻松的任务:
所有这些解决方案以及更多内容都在我题为“如何在Python中对字典列表进行排序”的文章中进行了概述。
我最喜欢谈论的Python主题之一是列表推导式。作为一个在Java、C/ C++和C#这样的语言环境中长大的人,我从未见过任何类似列表推导式的东西,直到我接触了Python。现在,我对它们非常着迷。因此,我把所有的例子放在一起:
与往常一样,你可以在我题为“如何在Python中编写列表推导式”的文章中找到我对所有这些代码的更正式的解释。作为一个额外的福利,我有一个YouTube视频分享了几个列表推导式的例子。
在这个集合中,我们讨论了很多关于处理列表和字典等数据结构的内容。这个也一样。特别是,我们正在考虑合并两个字典。当然,合并两个词典也有风险。例如,如果有重复的键怎么办?幸运的是,我们有针对此的解决方案:
如果你感兴趣的话,我有一篇题为“如何在Python中合并两个字典”的文章专门讨论了这个主题,其中介绍了四种解决方案以及性能指标。
不管我们承认与否,我们经常会发现我们为了快速调试的目的,而在代码中隐藏了print语句。毕竟,合理放置的打印语句可以为你节省大量时间。不幸的是,要确切地显示我们想要的东西并不总是那么容易或方便。幸运的是,Python有很多格式化选项:
请记住,这些解决方案不一定必须与print语句一起使用。换句话说,你可以随时根据需要使用f-strings之类的解决方案。
和往常一样,你可以在我题为“如何在Python中格式化字符串”的文章中找到所有这些解决方案的解释和详细信息。如果你更想查看这些代码片段的实际效果,你可以查看我在YouTube上发布的题为“Python中格式化以我的猫为主角的字符串的6种方法"的视频。
在格式化字符串时的同一行中,有时你只需要在Python中的同一行中进行打印。由于print命令是当前设计的,它会自动将换行符添加到你的字符串的末尾。幸运的是,有一些方法可以解决这个问题:
与往常一样,如果你打算使用这些解决方案中的任何一个,请参阅题为“如何在Python中在同一行上进行打印”的文章,了解更多用例和注意事项。
最后,有时你只想比较几个代码块。幸运的是,Python有几个简单的选项:
同样,如果你想要了解更多细节,请查看题为“如何对Python代码进行性能测试”的文章。
早些时候,我们讨论了在某些情况下翻转字典是可以的。当然,如果我们的字典很大,直接翻转字典可能没有意义。相反,我们可以根据一个值查找键:
如果这看起来有帮助,你可以查看题为“如何在Python中执行反向字典查找”的源文章。我喜欢写这篇文章的原因之一就是学习生成器表达式。如果你是第一次见到他们,你可能想去看看它。
我发现自己经常搜索的一件事是检查Python中的字符串是否包含子字符串的方法。与大多数编程语言不同,Python利用了一个很好的关键字来解决这个问题。当然,也有基于方法的解决方案:
如果你像我一样忘记了in关键字,那么你可能希望将“如何检查一个字符串是否包含一个子字符串”文章添加到书签中。
正如你所看到的,本文及其相关的系列文章已经相当庞大了。也就是说,我想继续增加它们。因此,你可以考虑分享一些你自己的问题。毕竟,总有一些事情是你经常需要google的。为什么不和我们一起分享它呢?
与此同时,你可以通过浏览我的时事通讯,访问商店,订阅我的YouTube频道,和/或成为我的赞助人来帮助我扩大我的合集。此外,欢迎你浏览以下相关文章: