当前位置: 首页 > news >正文

在线咨询网站开发价格免费站推广网站2022

在线咨询网站开发价格,免费站推广网站2022,如何给自己的店做小程序,徐州云龙城乡建设局网站任务 给定一个字典#xff0c;此字典将不同的键映射到不同的值。而你想创建一个反转的字典#xff0c;将各个值反映射到键。 解决方案 可以创建一个函数#xff0c;此函数传递一个列表推导作为dict的参数以创建需要的字典。 def invert_dict(d):return dict([(v,k) for …任务 给定一个字典此字典将不同的键映射到不同的值。而你想创建一个反转的字典将各个值反映射到键。 解决方案 可以创建一个函数此函数传递一个列表推导作为dict的参数以创建需要的字典。 def invert_dict(d):return dict([(v,k) for k,v in d.iteritems() ])对于比较大的字典用 Python 标准库 itertools 模块提供的 izip 会更快一些: from itertools import izip def invert_dict_fast(d):return dict(izip(d.itervalues(),d.iterkeys()))讨论 如果字典d中的值不是独一无二的那么d无法被真正地反转也就是不存在这样的字典对于任意给定的键k满足id[d[k]]k。不过本节展示的函数在这种情况下仍然能够创建一个“伪反转”字典 pd对于任何属于字典d地值 vd[pd[v]]v。如果给你原始的字典 d以及用本节函数获得的字典x可以很容易地检査x是d的反转字典还是伪反转字典当且仅当 len(x)len(d)时x才是d的真正的反转字典。这是因为如果两个不同的键对应相同的值对于解决方案给出的两个函数来说两个键中的个一定会消失因而生成的伪反转字典的长度也会比原字典的长度短。在任何情况下只有当d中的值是可哈希(hashable意味着可以用它们做字典的键)的前面展示的函数才能正常工作否则函数会抛出一个TypeError 异常。 当我们编写 Python程序时我们通常会“无视小的优化”正如DonaldKnuth在 30年前所说的“比起速度我们更珍视清晰和正确性。”不过了解更多让程序变快的知识也没有害处:当我们为了简单和清晰而采用某种方法编写程序时我们最好深入地考虑一下我们的决定不要懵懵懂懂。 在这里解决方案中的 invent_dict 函数可能会被认为更清晰,因为它清楚地表达了它在做的事。该函数取得了由iteritems方法生成的成对的键及其对应值k和v将它们包裹成(value,key)的顺序并把最后生成的序列作为参数赋给 dict这样 dict 就构建出了一个值成为键而原先的键变成了对应值的新字典——正是我们需要的反转字典。 而解决方案中 invert_dict_fast 函数其实也没有那么复杂它的操作更加抽象它首先将所有的键和值分别转为两个独立的迭代器再通过调用Python 标准库itertools 模块提供的 izip 将两个迭代器转化为一个迭代器,其中每个元素都是像(value,key)一样的一对值。如果你能够习惯于这种抽象层次你将体会到更高层次的简洁和清晰。 由于这种高度的抽象性以及不具化(materialize)整个列表(而是通过生成器和迭代器一次生成一项)的特性invert_dict_fast能够比invert_dict 快很多。比如在我的计算机上反转10000个条目的字典invertdict耗时63ms而invert_dict_fast 则仅用时 20ms。速度提升了3倍颇为可观。当你处理大规模数据时由于代码的高度抽象性而带来的性能提升将会变得更加明显。特别是当你使用itertools来替换循环和列表推导时执行速度同样也能获得极大提升因为你无须在内存中具化一些超大的列表。当你习惯了更高的抽象层次性能的提升只是一个额外收益除此之外你在观念和创造性上也会有所进步。
http://www.pierceye.com/news/520919/

相关文章:

  • 深圳网站建设电话哈尔滨建设网站官网
  • 上海网站建设网页制作培训做网站做论坛赚钱吗
  • 为网站做电影花絮哈尔滨互联网公司
  • 哈尔滨微网站建设公司做网站被骗该咋样做
  • 做翻译 英文网站dede网站版权信息
  • 梅江区住房和城乡建设局官方网站品牌设计帮
  • 单页网站cms建设通会员多少一年
  • app营销型网站的特点公司建设网站怎么作账
  • 有免费做海报的网站吗制作表情包
  • 网站建设的平台做微课的网站
  • 有没有专门做美食海报的网站郑州网站建设搜q.479185700
  • 公司网站宣传做网站时版权怎么写
  • 可以在哪些网站 app做推广的建站官网模板
  • 网站建设标书卧龙区建网站
  • 东莞做网站软件嘉兴网站制作价格
  • 学网站建设 去那里合肥专业网站优化
  • 个人网站 备案 广告建设国际网站
  • 苏州建站推广公司做网站费用怎么记分录
  • 做的比较好的家具网站首页在win10下建设网站
  • 住房和城乡建设部网站 绿地网站备案有时间吗
  • 新开传奇手游新服网谷歌seo运营
  • 新河网站建设网站空间 jsp
  • 网站视频如何下载中国建盏
  • 做网站的叫什么软件细谈电商网站外链建设的策略
  • 免费网站制作视频教程广东东莞营销
  • 女生做网站运营累不累贵州省铁路建设办公室网站
  • 全球外贸网站排名go生物网站做蛋白定位
  • 网站的规划和建设方案中教在线3d建模培训
  • 禾天姿网站开发设计上海官网
  • 个人备案后可以做电影网站吗做网站要注意哪些问题