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

网站开发常用中间件wordpress导航浮动

网站开发常用中间件,wordpress导航浮动,百度教育智能小程序,网站域名所有权查询任务 你想将一个字符串列表进行排序,这些字符串都含有数字的子串(比如一系列邮寄地址)。举个例子,“foo2.txt”应该出现在“foo10.txt”之前。然而,Python 默认的字符串比较是基于字母顺序的,所以默认情况下,“foo10.…

任务

你想将一个字符串列表进行排序,这些字符串都含有数字的子串(比如一系列邮寄地址)。举个例子,“foo2.txt”应该出现在“foo10.txt”之前。然而,Python 默认的字符串比较是基于字母顺序的,所以默认情况下,“foo10.txt”会在“foo2.txt”之前。

解决方案

需要先将每个字符串切割开,形成数字和非数字的序列,然后将将每个序列中的数字转化成一个数。这会产生一个数的列表,可以用来做排序时比较的键,可以对这个排序应用 DSU——写两个函数即可,做起来很快捷:

import re
re_digits = re.compile(r'(\d+)')
def embedded_numbers(s):pieces = re_digits.split(s)#切成数字与非数字pieces[1::2] = map(int,pieces[1::2])#将数字部分转成整数return pieces
def sort_strings_with_embedded_numbers(alist):aux = [ (embedded_numbers(s),s) for s in alist ]aux.sort()return [ s for __, s in aux ]#惯例:__意味着“忽略”

在 Python 2.4 中,用相同的 embedded_number 函数,加上DSU的原生支持,代码变成

def sort_strings_with_embedded_numbers(alist):return sorted(alist,key=embedded_numbers)

讨论

假设有一个未排序的文件名的列表,比如:

files = 'file3.txt filell.txt file7.txt file4.txt filel5.txt'.split()

如果只是排序并打印列表,比如在 Python 2.4中用 print’ '.join(sorted(files))这样的代码,你的输出会是这样:file11.txt file15.txt file3.txt file4.txt file7.txt,因为默认情况下,字符串是根据字母顺序排序的(或者换句话说,排序顺序是由条目顺序指定的)。Python猜不到你的真实意图其实是希望让它以另外的方式处理那些含有数字的子串,所以必须准确地告诉 Python 你想要什么,解决方案中的代码主要所做的工作其实就是这么一件事。

基于解决方案的代码,也能获得一个更好看的结果:

print''.join(sort_strings_with_embedded_numbers(files))

现在输出变成了 file3.txt file4.txt file7.txt file11.txt file15.txt,这应该正好就是需要的顺序。
这个实现基于 DSU。如果想在 Python 2.3 中达到同样目的,需要手工制作 DSU,但如果你的代码只需要在 Python 2.4 中运行,直接使用原生内建的 DSU 即可。我们传递了一个叫做 key 的参数(一个函数,该函数对每个元素都会调用一次以获取正确的比较键来用于排序)给新的内建函数 sorted。

本节解决方案中的embedded_numbers函数正是用来为每个元素获取正确的比较键的方法:一个非数字子串交替出现的列表,int获取了每个数字子串。re_digits.split(s)给了我们一个交替出现的数字子串和非数字子串的列表(数字子串拥有偶数索引号),然后我们使用了内建的 map 和 int(采用了扩展切片的方式获得并设置了偶数索引号的元素)来将数字序列转化成整数。现在,对这个混合类型的列表进行的条目顺序比较就可以产生正确的结果了。


文章转载自:

http://ASmtnhd1.phxns.cn
http://7Bfd8XHP.phxns.cn
http://2pcNcOWG.phxns.cn
http://9jkhWaD8.phxns.cn
http://ywrAmhZ3.phxns.cn
http://ciCvisIb.phxns.cn
http://lYhwbxZO.phxns.cn
http://aqhVg1DG.phxns.cn
http://Ll5cHzD0.phxns.cn
http://hJhDxV2Y.phxns.cn
http://1z47S9DB.phxns.cn
http://fJLJ9n1B.phxns.cn
http://a3EGqB0J.phxns.cn
http://wwWkdtQN.phxns.cn
http://cLRi3Tod.phxns.cn
http://LiyaoEir.phxns.cn
http://GooHgXWd.phxns.cn
http://Lc7loWiY.phxns.cn
http://Z6lPsXAt.phxns.cn
http://HpZUOUGj.phxns.cn
http://CBoGroNE.phxns.cn
http://xiRCIex5.phxns.cn
http://iTuYZmKJ.phxns.cn
http://XTAGJzQE.phxns.cn
http://y68WwLhL.phxns.cn
http://CsRM13Sl.phxns.cn
http://prC3wxfQ.phxns.cn
http://vMjnHaqP.phxns.cn
http://6ZHjk1hI.phxns.cn
http://gflL33H4.phxns.cn
http://www.dtcms.com/wzjs/627859.html

相关文章:

  • 怎么打造自己的网站南京网燃网络科技有限公司
  • 龙岩网站设计找哪家公司wordpress 地图导航代码
  • 北京朝阳网站制作公司对比网站
  • php网站制作常用代码阿里云自助建站模板
  • 镇江微网站建设网站建设与开发
  • 谷秋精品课程网站建设软件网站怎么建设
  • 设计投稿网站广东省农业农村厅彭彬
  • 网站建设策划优点南昌医院网站建设
  • 杭州p2p网站建设石家庄市建设局网站首页
  • 自己做ppt网站吗网站建设在哪里做比较好
  • 用织梦做的网站下载地址m开头的手机网站怎么做
  • 网站扒下来了怎么做在线制作图片用什么软件好用
  • 建网站注意什么在线设计海报网站
  • 建立网站赚钱 优帮云做wordpress 下载站
  • 佛山哪里有网站开发商务网站开发课程建言
  • 小企业网站建设查询互联网的推广方式有哪些
  • 环保推广哪个网站好莆田有哪些网站建设公司
  • 官方网站建设专业公司aspx做网站
  • 福永营销型网站多少钱aso优化师
  • 有建网站的公司吗有专门做网站维护的职业吗
  • 一个网站多个域名重定向怎么做html如何建网站
  • 最新创建的网站WordPress百科模板
  • 酒店网站开发协议霸州做网站shijuewang
  • 私人承接做网站多少钱江西省赣州市中考分数线2022
  • 专业的移动网站建设公司建设广告网站需要资质吗
  • 包装设计网站排行榜前十名网站建设合同约定三年后
  • 网站 哪些服务器WordPress电影评分模板
  • 网站优化月总结烟台市住房和城乡建设局网站
  • 泉州大型网站建设专业购物网站建设报价
  • 网站好坏的指标设计logo图标