python - 如何比较 Python 列表中的对?
问题描述
我正在尝试遍历两个列表的串联列表,该列表本质上是一袋单词-示例输出产生 [('brexit', 11), ('say', 11), ('uk', 7), ( 'eu', 6), ('deal', 5), ('may', 5), ..., ('brexit', 35), ('say', 28), , ('may', 5 ), ('英国', 1), ... ]
从 .txt 文件中收集所有文本输入后,我删除了停用词并使用词干提取从时态中删除重复项。
我要采取的下一步是遍历列表并找出给定单词出现次数的差异-我希望将“brexit”、“say”和“uk”标记为两者中的任何一个都具有重要意义出现次数或只是差异。我的代码开始(部分是python,部分是伪代码)如下。
def findSimilarities (word, count):
for (word, count) in biasDict:
if word == word and count != count:
print (word, count - count)
elif word ==word and count == count:
del (word, count)
(word, count)++
有关如何处理此问题并编辑代码以使其工作的任何建议?如果它会更好,我可以让单词来自两个单独的列表(这就是它们的创建方式;我在创建它们之后将它们连接起来)。
非常感谢。
解决方案
合并事件的想法对我来说似乎很好。这是我的实现。任何评论或优化表示赞赏。
def merge_list(words_count_list):
updated_list = list()
words_list = list()
for i in range(len(words_count_list)):
word = words_count_list[i][0]
count = words_count_list[i][1]
if word not in words_list:
words_list.append(word)
for j in range(i+1,len(words_count_list),1):
if word == words_count_list[j][0]:
count += words_count_list[j][1]
updated_list.append((word,count))
return updated_list
print(merge_list([('brexit', 11), ('say', 11), ('uk', 7), ('eu', 6), ('deal', 5), ('may', 5),
('brexit', 35), ('say', 28),('may', 5), ('uk', 1)]))
输出:
[('brexit', 46), ('say', 39), ('uk', 8), ('eu', 6), ('deal', 5), ('may', 10)]
现在,您可以指定字数的阈值,按字数排序,然后删除最重要的字。
推荐阅读
- r - 对某些列取平均值
- python - 将 Flask 与子域一起使用会破坏 Google 任务队列路由
- python - “elif”语句不起作用并引发错误 - python
- azure - 在 Azure 门户下部署网站有多少种不同的方式?
- c# - TreeView 检测节点选择,但在选中或取消选中时不检测
- c++ - if 函数的另一种解决方案,减少写作
- r - 根据列表位置绑定列表列表
- amazon-web-services - S3 lambda 上传问题:管道损坏
- javascript - 在 JavaScript 中使用 fetch 通过 Twitter API 的 Auth1.0a
- reactjs - Spring Boot Rest Controller POST 请求总是使用@SessionScope 创建新的 sessionid?