我在Python中比较两个数组.
第一个数组是查询字符串中的单词列表.第二个数组是要从查询中排除的单词列表.
我必须比较这些数组并排除第一个数组中包含在第二个数组中的单词.
我试图通过比较第一个数组中的每个单词到整个第二个数组来解决这个问题,并继续直到第一个数组中的所有单词都用完为止:
for i in q_str:
if q_str[i] in stop_arr:
continue
else:
sans_arr[j] = q_arr[i]
j = j + 1
Run Code Online (Sandbox Code Playgroud)
q_str查询数组在哪里,stop_arr包含要排除的单词,sans_arr是一个包含单词排除
的新数组.
此代码生成错误:
list indices必须是整数而不是str
使用集合代替列表,可以轻松访问集合操作,例如减法:
set1 = set(q_str)
set2 = set(stop_arr)
set3 = set1 - set2 # things which are in set1, but not in set2
# or
set4 = set1.difference(set2) # things which are in set1, but not in set2
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
>>> u = set([1,2,3,4])
>>> v = set([3,4,5,6])
>>> u - v
set([1, 2])
>>> u.difference(v)
set([1, 2])
>>> v.difference(u)
set([5, 6])
Run Code Online (Sandbox Code Playgroud)