Python编程中3个常用的数据布局和算法
副问题[/!--empirenews.page--]
Python内置了很多很是有效的数据布局,好比列表(list)、荟萃(set)以及字典(dictionary)。就绝大部门环境而言,我们可以直接行使这些数据布局。可是,凡是我们还必要思量好比搜刮、排序、分列以及筛选等这一类常见的题目。 本篇文章将先容3种常见的数据布局和同数据有关的算法。另外,在collections模块中也包括了针对各类数据布局的办理方案。 1. 将序列解析为单独的变量 (1) 题目 我们有一个包括 N 个元素的元组或序列,此刻想将它解析为N个单独的变量。 (2) 办理方案 任何序列(或可迭代的工具)都可以通过一个简朴的赋值操纵来解析为单独的变量。独一的要求是变量的总数和布局要与序列相相符。譬喻:
假如元素的数目不匹配,将获得一个错误提醒。譬喻:
(3) 接头 现实上不只仅只是元组或列表,只要工具刚好是可迭代的,那么就可以执行解析操纵。这包罗字符串、文件、迭代器以及天生器。好比:
当做解析操纵时,偶然辰也许想扬弃某些特定的值。Python并没有提供非凡的语法来实现这一点,可是凡是可以选一个用不到的变量名,以此来作为要扬弃的值的名称。譬喻:
可是请确保选择的变量名没有在其他处所用到过。 2. 从恣意长度的可迭代工具中解析元素 (1) 题目 必要从某个可迭代工具中解析出N个元素,可是这个可迭代工具的长度也许高出N,这会导致呈现“解析的值过多(too many values to unpack)”的非常。 (2) 办理方案 Python的“*表达式”可以用来办理这个题目。譬喻,假设开设了一门课程,并抉择在期末的功课后果中去掉第一个和最后一个,只对中间剩下的后果做均匀分统计。假如只有4个后果,也容许以简朴地将4个都解析出来,可是假若有24个呢?*表达式使这统统都变得简朴:
另一个用例是假设有一些用户记录,记录由姓名和电子邮件地点构成,后头随着恣意数目的电话号码。则可以像这样解析记录:
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |