python - 在 CSV 文件中查找子字符串的索引
问题描述
我编写了一些代码来创建一个函数,用于计算子字符串在字符串中出现的次数,该函数的第二部分应该返回,是每个子字符串的索引。
该字符串存储在 .csv 文件中,当我尝试返回子字符串的索引时遇到问题。
1.导入text.csv文件
import csv
data = open('text.csv', 'r')
read_data = csv.reader(data)
2.功能齐全的计数器。该函数应返回子字符串出现的次数及其索引
def counter(substring):
ss_counter = 0
for substring in read_data:
ss_counter = ss_counter + 1
print('Counter = ', ss_counter)
print('Index = ', substring.index)
3.不要编辑下面的代码
counter("TCA")
我从 .index 得到的错误是
列表对象的内置方法索引在 0x7f4519700208
解决方案
假设您在我的评论中提到时修复,它不会像您期望的那样工作。
该read_data
变量是一个将遍历文件行的对象(请参阅此处的文档)。所以在函数内部,当你这样做时for substring in read_data
,子字符串变量(你覆盖参数)包含一个单独的行,其中每个元素都是逗号分隔的值。
检查该方法的文档。您必须将要在列表中查找的子字符串传递给函数。但是因为您覆盖了您正在寻找的子字符串,所以现在这是不可能的。list
index
index()
附带说明一下,子字符串可能会出现两次或更多次,而您当前的代码没有考虑到这一点。
所以一种解决方案可能是:
def counter(substring):
ss_counter = 0
for row in read_data:
ss_counter = ss_counter + 1
print('Counter = ', ss_counter)
print('Index = ', row.index(substring))
我将让您弄清楚如何考虑给定行中的多次出现。
推荐阅读
- python - 如何将所有变量从父类继承到具有 init 函数的基类?
- java - Java中fillInStackTrace()方法中的`int dummy`是什么意思?
- java - 未能解决:Landroidx/work/impl/utils/futures/AbstractFuture
- laravel - Laravel 工厂无法创建,因为已经有一个
- javascript - 如何优化循环
- reactjs - 部署后反应项目错误(最大调用堆栈)
- unicode - Free Pascal 3.2.0 中的 Unicode 编码/解码错误
- python - 禁用均值函数的舍入
- java - 在这种特定情况下,如何阻止 Eclipse 缩进额外的空格?
- python - 如何使用登录的用户名在 Python Django 帖子上添加评论?