Python 如何遍历列表以查看列表中的任何值是否与另一个单元格中的部分值匹配?

Python 如何遍历列表以查看列表中的任何值是否与另一个单元格中的部分值匹配?,python,excel,Python,Excel,我从美国图书馆得到了一份美国各州的名单。然后,我尝试在excel文件中的一列中循环,以查看该列中的任何单元格是否包含任何美国州。如果是,那么我将删除这些行 excel_file = pd.read_excel('file.xlsx', sheet_name = 'sheet') states = us.states.STATES for i in range(len(excel_file['Column Label'])): if any(states) in excel_file[

我从美国图书馆得到了一份美国各州的名单。然后,我尝试在excel文件中的一列中循环,以查看该列中的任何单元格是否包含任何美国州。如果是,那么我将删除这些行

excel_file = pd.read_excel('file.xlsx', sheet_name = 'sheet')

states = us.states.STATES

for i in range(len(excel_file['Column Label'])):
    if any(states) in excel_file['Column Label'][i]:
        print(i)
现在我在循环中有一个print语句,只是为了查看哪些索引弹出,但是循环本身不起作用。我收到这个错误

TypeError:“in”需要字符串作为左操作数,而不是bool


尝试下面的代码,
any()
函数返回
True
如果iterable中的任何项为True,否则返回
False

any(state in excel_file['Column Label'][i] for state in states)
这不是我们要做的
any()
在一个iterable上循环并返回
True
,如果该iterable中的任何内容导致
True

例如:

any([False,False,False])=>False
任何([False,True,False])=>True
为了更容易阅读你要做的事情,我切换到了循环而不是范围。这将返回索引和我们迭代的当前值。对于工作表中的每个条目,我们可以检查该条目是否在您的州列表中

这里的
print()
语句打印
i
值和匹配的条目

对于i,枚举(excel_文件['Column Label'])中的条目:
如果进入美国:
打印(i,条目)

注意:Python隐藏了这个练习需要嵌套循环的事实。循环的顶部很明显,但是这里的
关键字中的
正在创建一个自己的循环。它正在将
条目
状态
中的每个项目进行比较,至少在找到匹配项之前。

任何
方法文档都告诉了您有关它的用法的信息吗?哦,谢谢!我还有一个后续问题。与状态列表进行比较的单元格中可能有状态,但不只是状态。例如,有人说“佛罗里达房车贸易协会”。如何检查单元格中是否有状态?必须执行另一个嵌套循环。您可以在“更长的字符串”中执行
'string'
,因此类似于
对于状态中的状态:如果条目中的状态