【发布时间】:2018-07-15 21:17:03
【问题描述】:
所以,我编写了下面的代码来提取主题标签和带有“@”的标签,然后将它们附加到列表中并按降序对它们进行排序。问题是文本的格式可能不完美,并且每个单独的主题标签之间没有空格,并且可能会出现以下问题 - 因为它可以使用 for 循环中的 #print 语句进行检查: #socality#thisismycommunity#themoderndayexplorer#modernoutdoors#mountaincultureelevated
所以,.split() 方法不处理这些。这个问题的最佳实践是什么?
感谢您的宝贵时间。
name = input("Enter file:")
if len(name) < 1 : name = "tags.txt"
handle = open(name)
tags = dict()
lst = list()
for line in handle :
hline = line.split()
for word in hline:
if word.startswith('@') : tags[word] = tags.get(word,0) + 1
else :
tags[word] = tags.get(word,0) + 1
#print(word)
for k,v in tags.items() :
tags_order = (v,k)
lst.append(tags_order)
lst = sorted(lst, reverse=True)[:34]
print('Final Dictionary: ' , '\n')
for v,k in lst :
print(k , v, '')
【问题讨论】:
-
如果文本仅包含标签和配置文件但格式不正确,您可以使用正则表达式。它们非常适合此类任务