寻找与此 javascript 代码等效的 python

我正在为我的工作学习 python,以便能够操作统计数据。我已经了解 C# 和 javascript,并且可以使用这些语言解决这个问题,但是我很难将解决方案翻译成 python。


问题 计算 .txt 文件中所有唯一的四个字母单词。任何带有撇号的单词都应该被忽略。忽略单词的大小写(即Tool和tool应该只算一个单词)。打印出(以便用户可以看到)唯一的四个字母单词的数量。


根据单词的最后两个字母(单词结尾)划分四个字母的单词。数一数这些词尾你有多少个单词。


打印出一个词尾列表和你为每个词尾找到的词数。


我在下面的 Javascript 中解决了这个问题:


var listOfWords = ['card','alma','soon','bard','moon','dare'];

var groupings = {};


for(var i = 0; i < listOfWords.length; i++);

{

    var ending = listOfWords[i].substring(2,4)

    if(groupings[ending] === undefined)

    {

        groupings[ending] = {}

        groupings[ending].words = []

        groupings[ending].count = 0

    }

    groupings[ending].words.push(listOfWords[i])

    groupings[ending].count++

};


console.debug(groupings);


这是我到目前为止在 python 中的内容:


import re

text = open("words.txt")

regex = re.compile(r'\b\w{4}\b')

allFours = []

groupings = []


for line in text:

    four_letter_words = regex.findall(line)

    for word in four_letter_words:        

        allFours.append(word)


mylist = list(dict.fromkeys(allFours))

uniqueWordCount = len(mylist)

print(uniqueWordCount)

for i = 0; i < mylist.length; i++:

    var ending = mylist[i]

我希望我已经清楚地解释了所有问题。非常感谢所有帮助,谢谢。


开心每一天1111
浏览 125回答 1
1回答

心有法竹

问题 计算 .txt 文件中所有唯一的四个字母单词。任何带有撇号的单词都应该被忽略。忽略单词的大小写(即Tool和tool应该只算一个单词)。打印出(以便用户可以看到)唯一的四个字母单词的数量。根据单词的最后两个字母(单词结尾)划分四个字母的单词。数一数这些词尾你有多少个单词。独特 -> 设置4 个字母 -> 最好只检查长度而不是使用正则表达式,正则表达式很慢忽略带撇号的单词 ->&nbsp;"'" not in word忽略大小写 -> 将所有转换为更低,简单根据最后 2 个字母划分集合 -> 制作一个 dictresult = set()with open("words.txt") as fd:&nbsp; &nbsp; for line in fd:&nbsp; &nbsp; &nbsp; &nbsp; matching_words = {word for word in line.lower().split() if len(word)==4 and "'" not in word}&nbsp; &nbsp; &nbsp; &nbsp; result.update(matching_words)print(result)print(len(result))line.lower()使整行小写字母,然后.split()使用默认参数将其拆分为空格。result_dict = {}for word in result:&nbsp; &nbsp; # better to use default dict here but you'll need to read docs for that&nbsp; &nbsp; result_dict[word[2:]] = result_dict.get(word[2:], []) + [word]print(result_dict)print({key: len(value) for key, value in result_dict.items()})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript