我们如何使用 python 删除长度为 16 个字母或以上的所有不同单词

2023-12-15

我们如何删除长度为 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()

好吧,我快速回答了你的问题。我将解释我是如何完成这项任务的。也可能有更好的方法。据我从你的问题中了解到的是:

您主要关心的是保持单词长度为 15,并且保持 他们截然不同。

下面的代码片段正是这样做的。我首先读取文件anyFile.txt其中应包含仅具有 15 个或更多字母的所有单词。我从你的问题假设你已经创建了这种文件。我将此文件的内容保存到english_words.

然后我声明了一个charList = ['a','b','c','d','e','f']。那么在我的代码中我只是使用这些6用于创建不同单词的字母。如果您愿意,可以使用更多。越多越好。

然后我使用 for 循环遍历每个单词。在循环中,我首先删除单词以使其长度最多为 15 个字母。然后我打电话给我的checker()做重的事情。

The checker()将首先检查该单词是否已存在于oldWordList如果是,那么它将生成一个新的不同单词。我使用递归来仔细检查新创建的单词是否不同。如果该词不在oldWordList然后我只需将其附加到newWorldList.

This newWorldList最后将包含所有不同的单词。

不同的单词是如何生成的? 嗯,代码很简单。首先,我将字符串单词转换为列表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

当脚本执行时你会看到print newWordList将在控制台中向您显示长度为 15 个字母的不同单词列表。

局限性:我只是想指出,使用像我所做的那样的替换方法创建不同的单词也存在限制。例如:考虑一个由 2 个字母组成的单词,如果允许您使用 2 个字母来创建所有可能的单词,那么您只能生成 4 个不同的单词。

Eg:Word = IN,替换字母为 A、B

不同的词只能是:IA、IB、AN、BN。因为在替换方法中我们只能替换一个字母而不改变它们的位置。我们只能用A或B替换I或N。我们不能使用替换方法来做NA、NB、AI、BI等。

我希望这有点帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们如何使用 python 删除长度为 16 个字母或以上的所有不同单词 的相关文章

随机推荐

  • 如何将 Selenium WebDriver 嵌入为 WPF 控件?

    有没有办法嵌入WebDriver驱动程序到 WPF 窗口 类似于 WPFWebBrowser控制 或者 有没有一种方法可以在WebBrowser控制自己 到目前为止 只能创建一个新的WebDriver窗口 与应用程序中的任何其他 WPF 窗
  • SQL Server 连接最新 2 个条目

    我知道帖子的标题很糟糕 但请听我说完 前几天工作中出现了这样的问题 虽然我找到了解决方法 但这个问题仍然困扰着我 假设 Stackoverflow 只有 3 个表 Users username Comments comment creati
  • 如何为现有 Azure WebApp 添加 Application Insights

    我在 Azure 中有 10 个 Web 应用程序 但我无法为它们配置 Application Insights 因为我还没有使用它们保存项目 当我在 VisualStudio 中创建新的 WebApp 时 可以为应用程序添加 Applic
  • Java:检测三击而不触发双击

    我有一个 JTable 我想在双击单元格时调用一个函数 并在三次单击单元格时调用另一个函数 当单元格被三次单击时 我不想调用双击功能 我现在拥有的是 mgrdAlarm 是 JTable mgrdAlarm addMouseListener
  • 多路 FunDeps 以及与重叠实例的一致性:(为什么)这有效?

    这是旧栗子的变体 我写它的时候以为它不会起作用 但它确实起作用了 还是它很狡猾 在 GHC 8 6 5 中 LANGUAGE MultiParamTypeClasses FlexibleInstances FlexibleContexts
  • 实体框架数据库种子不种子

    我对 EF 还很陌生 我正在尝试覆盖Seed我的自定义初始化程序中的方法 使用 MVC 4 问题是当 EF 创建数据库时 我没有发现任何初始记录插入到我的数据库中Admins桌子 这是我的代码 namespace FP Domain Con
  • Ionic 3 错误 没有 AppVersion 的提供程序

    我正在使用 Ionic 3 延迟加载 我收到此错误 但似乎找不到我的方法的错误 错误 没有 AppVersion 的提供者 I have 设置 module ts import NgModule from angular core impo
  • 子类上的重复生成器序列休眠

    我按照这篇文章来解决我最初的问题 在 Hibernate 中的子类上指定每个表的不同序列 但现在我得到一个例外 调用init方法失败 嵌套异常是 java lang IllegalArgumentException 重复的生成器名称 idg
  • 在设计 C# 类库时,什么时候应该选择继承而不是接口? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我有一个号码Processor类将执行两种截然不同的操作 但从通用代码中调用 控制反转 情况 我想知道在决定它们是否都应该继承时 我应该认识到 或为您的用户认识到 哪些设计考虑因素Base
  • 使用 sed 替换文本

    我在通过 sed 替换脚本中的修改日期时遇到问题 我得到的最后修改日期是这样的 olddate grep m1 Built script sh cut c 22 29 我通过以下方式获取当前日期 newdate date d m y 基本上
  • 如何在实体框架代码优先方法中使用表值函数?

    我正在使用实体框架开发一个项目 现在我遇到了一种情况 我需要使用表值函数 它返回包含 2 列的表 因此我搜索了很多 我开始知道我们在数据库优先方法中使用表值函数虽然我首先需要在代码中使用它 情况是这样的 我有一个有两列的表格 Table1
  • 流畅的 nHibernate、Hi-Lo 表,使用约定每行实体

    有没有办法通过约定指定用于 Hi Lo 值的表 每个实体都有一个每行条目 同时仍然让 nHibernate 创建表结构 我想复制 Phil Haydon 博客上的内容here 但无需手动管理表 就目前情况而言 只有当您已经在表中为 Tabl
  • PostgreSQL:如何从 Unix 纪元转换为日期?

    声明给了我日期和时间 如何修改该语句 使其仅返回日期 而不返回时间 SELECT to timestamp TRUNC CAST epoch ms AS bigint 1000 You use to timestamp函数 然后将时间戳转换
  • 如何缩小 rand() 中的数字?

    以下代码每秒输出一个随机数 int main srand time NULL Seeds number generator with execution time while true int rawRand rand std cout l
  • VB.Net 隐藏标签页

    我在这里看到了一些关于如何在选项卡控件中隐藏选项卡的讨论 但它们似乎都是用 C 或某种变体编写的 我还没见过 vb net 的 我不会做 C 我想要做的是隐藏或禁用所有一些选项卡 直到用户登录 我已经解决了登录和注销问题 我需要做的就是添加
  • 在 UIScrollView 上显示大型 UIView 的最佳方式是什么?

    我有一个大UIView 它的大小可变 它可能大于 5000x5000size 我用它在上面画线 圈UIBezierPath 我还添加一些view就在上面 这些中的每一个subview的包含buttons textview labels et
  • Visual Studio 2015 调试自定义控件

    我将自定义控件编译为 DLL 这些控件是使用 Visual Studio 2012 开发的 并且部署到生产环境中没有任何问题 当应用程序加载时 这些控件将使用反射作为 插件 加载 当我使用 Visual Studio 2015 打开解决方案
  • (Godot 引擎)用 Tilemap 瓷砖填充 2D 多边形

    我在 Godot 引擎中遇到一个无法解决的问题 怎么可能 在代码中 用图块填充 Polygon2D 区域 我尝试过获得点位置 使用 2D for 循环遍历线的顶点 但我无法理解这一点 这是我期待的结果的模型 我有解决方案 有一点 hacky
  • MySQL 可以远程连接但不能本地连接

    这是一个奇怪的问题 我不确定发生了什么 我在运行 Ubuntu 10 04 LTS 的 Linux 机器上安装了 MySQL 我可以通过 SSH 访问 mysqlmysql p并以这种方式执行我的所有命令 我添加了一个用户 我可以使用Add
  • 我们如何使用 python 删除长度为 16 个字母或以上的所有不同单词

    我们如何删除长度为 16 个字母或以上的所有不同单词 将这些单词的大小减少到十五个字母 同时保持它们清晰 提示删除后缀 后缀和 或中缀 到目前为止我已经完成了以下代码 fo open anyFile txt wb words set w l