专栏首页算法与编程之美答粉丝问|用冒泡对txt文本里的英文字串排序

答粉丝问|用冒泡对txt文本里的英文字串排序

问题描述

近日,有粉丝在公众号后台提问:

根据现有条件,笔者作本文回答粉丝疑问,并更改条件如下:如何用python实现将一个储存了很多英文字符串的txt文档重新以首字母的顺序排列好。

解决方案

要实现这一操作,首先就要清楚python读写文件的函数,其次是排序方法的选择,由于粉丝要求使用冒泡排序,所以笔者用冒泡排序的方法为大家讲解。

首先先做好准备工作,用random库创建好一个随机的含有字母的txt文本,然后根据txt的排版对其进行读取,将读取出的元素放入一个列表里面,在列表里面进行冒泡排序即可。切记千万不要用字符串直接进行排序,那样会出现报错。

python代码:

def suiji():#随机产生数个英文字符串 import random letter = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] l=[] n=0 while n<20: x=random.randint(0,51) l.append(letter[x]) n+=1 n=0 while n<20: str2 = '' while len(str2)<2: x=random.randint(0,51) str2+=letter[x] l.append(str2) n+=1 n=0 while n<20: str3 = '' while len(str3)<3: x=random.randint(0,51) str3+=letter[x] l.append(str3) n+=1 n=0 while n<20: str4 = '' while len(str4)<4: x=random.randint(0,51) str4+=letter[x] l.append(str4) n+=1 n=0 while n<20: str5 = '' while len(str5)<5: x=random.randint(0,51) str5+=letter[x] l.append(str5) n+=1 n=0 while n<20: str6 = '' while len(str6)<6: x=random.randint(0,51) str6+=letter[x] l.append(str6) n+=1 n=0 while n<20: str7 = '' while len(str7)<7: x=random.randint(0,51) str7+=letter[x] l.append(str7) n+=1 n=0 while n<20: str8 = '' while len(str8)<8: x=random.randint(0,51) str8+=letter[x] l.append(str8) n+=1 n=0 while n<20: str9 = '' while len(str9)<9: x=random.randint(0,51) str9+=letter[x] l.append(str9) n+=1 return l file = open("C:/Users/刘仕豪/Desktop/a.txt",'w')

结语

对txt里面的字符串进行排序其实不难,只要掌握了对文件的读取和写入,并且掌握一些排序的算法就可以做到,如果大家有什么不懂的或者有什么提议,可以在我们公众号留言,算法与编程之美与你一起共同进步。

END

主 编 | 张祯悦

责 编 | 刘仕豪

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:刘仕豪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python|打印给定高度和笔宽的叉

    算法与编程之美
  • Python|平方怪圈

    如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理,如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是...

    算法与编程之美
  • 前端|如何在SpringBoot中通过thymeleaf模板访问页面

    Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎。Thymeleaf的主要目标是在开发工作中带来优雅的自然模板。在传统的web开发时通常...

    算法与编程之美
  • 进程间通信

    进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。

    大学里的混子
  • 邹琼俊:不是211,985毕业的他,为什么能够出版两本优秀的技术书?

    邹琼俊,湘中小城娄底人,毕业于湖南省第一师范学校。大学毕业后,加入了周尹周老师组建的培训机构学习.NET培训,走上了.NET开发这条路。《ASP.NET企业级开...

    寒树Office与RPA
  • 快速学习-HBase实战解密

    Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效...

    cwl_java
  • 简单5步,从0开始搭建你的第一款小程序

    以小程序开发实战为基准点,围绕小程序云上解决方案,serverless后端架构,小游戏底层设计和直播、电商小程序的开发实战五大主题内容。

    云加社区技术沙龙
  • AI一分钟 | 南开和天津大学同日揭牌人工智能学院;上海扩大无人驾驶路测范围

    据知情人士透露,负责消息产品的 Alexa 副总裁吉姆·弗里曼告诉亚马逊,他今年早些时候将辞职前往德国电子商务公司 Zalando工作,而上级要求他留下来。弗里...

    AI科技大本营
  • 解决文本中词语和主题分布的主题模型LSA和LDA详述

    潜在语义分析(Latent Semantic Analysis, LSA),也叫做Latent Semantic Indexing(LSI),是一种常用的简单...

    魏晓蕾
  • “高危”!腾讯发现云虚拟化平台逃逸漏洞

    随着云技术的快速发展和迭代更新,各行各业都在“云”中快速成长,安全性显得尤为重要。而云时代软硬件的“云交互”,对安全来说也意味着新的挑战。 近日,腾讯Blad...

    云鼎实验室

扫码关注云+社区

领取腾讯云代金券