';str';对象不能解释为整数:Python错误

';str';对象不能解释为整数:Python错误,python,python-3.x,error-handling,Python,Python 3.x,Error Handling,我正在编写一个函数,它将接收两个字符串列表作为参数。 我需要检查第二个列表中的每个字符串在第一个列表中出现的次数,并返回一个计数数组。我想从第一个数组中弹出找到的元素,这样在接下来的搜索中,我只需要遍历较小的元素。但是我在strings.pop(I)上遇到了这个错误 您将在中发现: s.pop([i])-在i处检索项目,并将其从s中删除 因此,i应该是一个索引,您给它一个字符串。您可以更改为: strings.pop(strings.index(i)) 但这似乎是一种过度杀伤力,而且您试图通

我正在编写一个函数,它将接收两个字符串列表作为参数。 我需要检查第二个列表中的每个字符串在第一个列表中出现的次数,并返回一个计数数组。我想从第一个数组中弹出找到的元素,这样在接下来的搜索中,我只需要遍历较小的元素。但是我在
strings.pop(I)
上遇到了这个错误

您将在中发现:

s.pop([i])
-在i处检索项目,并将其从s中删除

因此,
i
应该是一个索引,您给它一个字符串。您可以更改为:

strings.pop(strings.index(i))

但这似乎是一种过度杀伤力,而且您试图通过删除元素来提高效率的尝试也受到了影响,因为:

while i in strings:
它可能不明确,但这一行每次都循环列表。即使你把它缩短了,它也很短

一种只浏览列表一次的方法是使用:

从集合导入计数器
字符串=[“苹果”、“橘子”、“香蕉”、“苹果”、“香蕉”]
查询=[“苹果”、“橘子”、“土豆”]
c=计数器(字符串)
res=[c[q]表示查询中的q]
打印(res)
给出:

[2, 1, 0]
您将在中发现:

s.pop([i])
-在i处检索项目,并将其从s中删除

因此,
i
应该是一个索引,您给它一个字符串。您可以更改为:

strings.pop(strings.index(i))

但这似乎是一种过度杀伤力,而且您试图通过删除元素来提高效率的尝试也受到了影响,因为:

while i in strings:
它可能不明确,但这一行每次都循环列表。即使你把它缩短了,它也很短

一种只浏览列表一次的方法是使用:

从集合导入计数器
字符串=[“苹果”、“橘子”、“香蕉”、“苹果”、“香蕉”]
查询=[“苹果”、“橘子”、“土豆”]
c=计数器(字符串)
res=[c[q]表示查询中的q]
打印(res)
给出:

[2, 1, 0]

请粘贴字符串和查询的数据也。在不知道您作为参数传递的输入类型的情况下,无法调试它。@RafiqueMohammed收到了!谢天谢地,还要粘贴字符串和查询的数据。在不知道您作为参数传递的输入类型的情况下,无法调试它。@RafiqueMohammed收到了!谢谢