我们如何使用python删除长度不超过16个字母的所有不同单词
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我们如何使用python删除长度不超过16个字母的所有不同单词,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3478字,纯文字阅读大概需要5分钟。
内容图文
![我们如何使用python删除长度不超过16个字母的所有不同单词](/upload/InfoBanner/zyjiaocheng/692/2ca1fcfe5c7a4c66b56b3fb036c44c49.jpg)
我们如何删除所有长度超过16个字母或更多的不同单词.将这些单词的大小减小到十五个字母,同时又要使其与众不同. (提示删除后缀,后缀和/或中缀)
到目前为止,我已经完成了以下代码:
fo = open("anyFile.txt","wb")
words = set(w.lower() for w in open('distinct_words_only.txt').read().split())
for item in english_words:
if len(item) > 15:
fo.write(item)
fo.close()
解决方法:
好吧,我快速回答了您的问题.我将解释我如何完成这项任务.也可能有更好的方法.据我从您的问题中了解到的是:
Your major concern is to keep the length of a word to 15 and also to keep
them distinct.
下面的代码段完全做到了这一点.我首先阅读文件anyFile.txt,该文件应仅包含15个字母或以上的所有单词.根据您的问题,我认为您已经创建了这种文件.我将此文件的内容保存在english_words中.
然后我声明了一个charList = [‘a’,’b’,’c’,’d’,’e’,’f’].在我的代码中,我只是使用这6个字母来创建不同的单词.如果愿意,可以使用更多.越多越好.
然后,我使用for循环遍历每个单词.在循环中,我先剥离单词以使其长度最多15个字母.然后,我调用我的checker()做繁重的工作.
checker()将首先检查oldWordList中是否已经存在该单词,如果是,则它将生成一个新的不同单词.我使用递归仔细检查了新创建的单词是否与众不同.如果单词不在oldWordList中,那么我只需将其附加到newWorldList中即可.
这个newWorldList最后将包含所有不同的词.
如何生成不同的单词?
代码很简单.首先,我将作为字符串的单词转换为List tempList = list(item),以便可以对其进行修改.那这边
tempList [randomIndex] = charList [randomChar]
我从charList = [‘a’,’b’,’c’,’d’,’e’,’f’]中选择一个随机字母,然后将其分配给tempList中的随机位置.
代码段:请参阅:代码段又快又脏,可以随时对其进行进一步的改进.
import random
fo = open("anyFile.txt","wb")
english_words = set(w.lower() for w in open('distinct_words_only.txt').read().split())
for item in english_words:
if len(item) > 15:
fo.write(item+'\n')
fo.close()
def checker(item):
randomIndex = random.randrange(0,15)#Random number to decide which position in word
randomChar = random.randrange(0,6)#Random number to pick a letter from charList
if item in oldWordList:
print 'Yes %s is present already'%item
tempList = list(item)#Convert string to list
tempList[randomIndex] = charList[randomChar]#Generate random word
item = "".join(tempList)#Covert list back to string
checker(item)#Recursion to double check
print 'Newly created word %s'%item
else:
print '%s is distinct'%item
newWordList.append(item)
english_words = set(w.lower() for w in open('anyFile.txt').read().split())
charList = ['a','b','c','d','e','f']
oldWordList = []
newWordList = []
for item in english_words:
item = item[0:15]
print 'Append item to oldWordList %s '%item
checker(item)
oldWordList.append(item)
print oldWordList#Will contain the original 15 letters words
print newWordList#Will contain distinct 15 letteres words
测试代码:创建一个名为’distinct_words_only.txt’的文件,其中包含以下内容并执行脚本代码:
averybigblackdogwithdots
averysmallwhitecatwithatail
averytinygreymousewithanose
averytinygreymousewithabignose
averybigblackdogwithdots
averybigblackdogwithdotts
averysmallwhitecatwithalongtail
averytinygreymousewithanosee
aaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaabbbbb
执行脚本后,您将看到打印的newWordList将在控制台中显示长度为15个字母的不同单词的列表.
局限性:我只是想指出,使用替代方法(如我所做的)来创建不同的单词也存在局限性.例如:考虑一个2个字母的单词,如果允许您使用2个字母来创建所有可能的单词,那么您只能生成4个不同的单词.
例如:
字= IN,替换字母为A,B
不同的字只能是:IA,IB,AN,BN.因为在替换方法中,我们只能替换字母而不能更改其位置.我们只能将I或N替换为A或B.我们无法使用替换方法来完成NA,NB,AI,BI等操作.
我希望这会有所帮助.
内容总结
以上是互联网集市为您收集整理的我们如何使用python删除长度不超过16个字母的所有不同单词全部内容,希望文章能够帮你解决我们如何使用python删除长度不超过16个字母的所有不同单词所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。