您当前的位置: 首页 > 

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

发布时间:2019-12-11 00:00:00 ,浏览量:0

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

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

根据现有条件,笔者作本文回答粉丝疑问,并更改条件如下:如何用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')

‘’’

图3.1随机创建好的txt文件的一部分

‘’’  ranstr = suiji()  for s in ranstr:      file.write(s)      file.write('\n')  file.close()  #先随机创建一个有许多字符串的txt文档

 #下面才是排序字符串,上面只是准备工作  file2 = open(r"C:/Users/刘仕豪/Desktop/a.txt")  strs = []  for line in file2:      strs.append(line)

#打开刚刚的文件,将刚刚文件里的字符串引入一个列表  for i in range(len(strs)-1):      for j in range(len(strs)-i):          if (j

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3520s