[英]Iterating over array and slicing or making changes in Python
我正要把我的头发拉出来。 我不确定为什么我的数组中的索引没有在第二列中实现。
我创建了这个数组 - project_information:
project_information.append([proj_id,project_text])
当我打印出来时,我得到了行和列。 它包含大约 40 行。
当我遍历它以打印出内容时,一切都很好。 我正在使用这个:
for i in range(0,len(project_information)):
project_id = project_information[i][0]
project_text = project_information[i][1]
print(project_id)
print (project_text)
project_text 列包含文本,而 project_id 包含整数。 它完美地打印出来,并且 project_id 和 project_text 的索引都发生了变化。
但是,我需要以不同的方式使用 project_text,我真的很挣扎。 我需要将文本切成较短的文本以便重复使用。 为此,我尝试了:
for i in range(0,len(project_information)):
project_id = project_information[i][0]
project_text = project_information[i][1]
print(project_id)
print (project_text)
if len(project_text) > 5000:
trunc_proj_text = project_text[:1000]
else:
trunc_proj_text = project_text
print (project_id)
print(trunc_proj_text)
我在这里遇到的问题是,虽然 project_id 列被正确迭代,但 project_text 却没有。 我得到的只是 project_text 第一行中的文本,切片并重复与数组长度一样多的次数。
我尝试了不同的方法,也尝试了一个 while 循环,但它仍然无法正常工作。
我还查看了这些答案以供参考 - 切片、索引和迭代 2D Numpy arrays 、 高效迭代切片 in Python 、 迭代列表切片,我似乎看不出如何将它们应用于我的问题。
我不太精通 Numpy 的使用,所以这对它有帮助吗? 我很清楚这可能很简单,但我错过了它,因为过去几周我一直在处理这个项目的各个方面,所以我希望能对此有所考虑。
提前致谢。
问题出在此处的输入列表上,因此使用此代码进行切片确实有效。 创建输入数组的代码现已修复。 创建输入列表的原始代码是连接每个条目的字符串,因此每个条目的 project_texts 看起来与结尾不同,但都有相同的开头。 但在控制台上查看时,很难看到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.