热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么list()。append()给我重复的值?

当我将字符串列表传递给此函数时,我希望它返回一个矩阵,说明每个唯一单词

当我将字符串列表传递给此函数时,我希望它返回一个矩阵,说明每个唯一单词出现在字符串中的次数,但是,我得到一个矩阵,其中第一个字符串的值重复4次。
这是代码

def tf(corp):
words_set = set()
for i in corp:
a=i.split(' ')
for j in a:
words_set.add(j)
words_dict = {i:0 for i in words_set}
wcount=0
matr=list()
for doc in corp:
for worduni in words_dict:
count=0
for words in doc.split(' '):
if words==worduni:
count+=1
words_dict[worduni]=count/len(doc.split(' '))
print(words_dict)
matr.append(words_dict)
return matr

当我打印matr的值时,我得到
[{'the':0.2,
  “第一”:0.2,
  '文档':0.2,
  '第三':0.0,
  '是':0.2,
  '一个':0.0,
  '和':0.0,
  'this':0.2,
  'second':0.0},
 {'the':0.2,
  “第一”:0.2,
  '文档':0.2,
  '第三':0.0,
  '是':0.2,
  '一个':0.0,
  '和':0.0,
  'this':0.2,
  'second':0.0},
 {'the':0.2,
  “第一”:0.2,
  '文档':0.2,
  '第三':0.0,
  '是':0.2,
  '一个':0.0,
  '和':0.0,
  'this':0.2,
  'second':0.0},
 {'the':0.2,
  “第一”:0.2,
  '文档':0.2,
  '第三':0.0,
  '是':0.2,
  '一个':0.0,
  '和':0.0,
  'this':0.2,
  'second':0.0}]


您的代码正在执行的操作是将相同的对象(word_dict)重复添加到matr中。自然地,由于matr是一个列表,它可以处理此…,您将对同一词典有多个引用。同时,您正在更新字典。因此,当您打印列表时,看到的是字典的最终状态... N次。

现在,我怀疑您打算将word_dict状态的快照保存在matr中。但是,如果要这样做,则需要将word_dict保存在matr中;例如

matr.append(words_dict.copy())

另一方面,如果您打算为doc中的每个corp生成一个单独的词频字典,则需要在外部移动word_dict的创建和初始化循环。


与上述情况分开,计算字数和计算频率的方式似乎是完全错误的。我假设这就是您尝试在这里做的事情。


注意:如果您使用更有意义的方法和变量名和/或在代码中添加适当的注释,其他人将更容易理解打算要执行的代码。>

,

我对此进行了修改,以使您获得与打印件相同的非重复数据:

@Override
public void onBindViewHolder(@NonNull BirdView holder,int position) {
holder.birdImage.setImageResource(birdList.get(position).getImage());
}

推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • Python的参数解析argparse模块的学习
    本文介绍了Python中参数解析的重要模块argparse的学习内容。包括位置参数和可选参数的定义和使用方式,以及add_argument()函数的详细参数关键字解释。同时还介绍了命令行参数的操作和可接受数量的设置,其中包括整数类型的参数。通过学习本文内容,可以更好地理解和使用argparse模块进行参数解析。 ... [详细]
author-avatar
php小白啊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有