python - 如何遍历列表以查看列表中的任何值是否与另一个单元格中的值的一部分匹配?
问题描述
我有一份来自美国图书馆的美国州列表。然后,我试图遍历 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)
现在我在循环中有一个打印语句,只是为了查看弹出哪些索引,但循环本身不起作用。我收到此错误。
TypeError: 'in' 需要字符串作为左操作数,而不是 bool
解决方案
这不是做什么any()
。any()
循环遍历一个可迭代对象并返回True
如果该可迭代对象中的任何事物导致True
.
例如:
any([False, False, False]) => False
any([False, True, False]) => True
为了更轻松地阅读您要执行的操作,我切换到enumerate()
循环而不是范围。这将返回我们正在迭代的索引和当前值。对于工作表中的每个条目,我们可以检查该条目是否在您的状态列表中。
此处的print()
语句会打印i
匹配的值和您的条目。
for i, entry in enumerate(excel_file['Column Label']):
if entry in states:
print(i, entry)
注意:Python 隐藏了这个练习需要嵌套循环的事实。最上面的 for 循环很明显,但in
这里的关键字是创建一个自己的循环。它正在与entry
中的每个项目进行比较states
,至少在找到匹配项之前是这样。
推荐阅读
- python - 不允许使用 PATCH 方法
- html - 如何阻止两个元素垂直重叠?
- node.js - 禁止同一用户同时登录
- ios - Flutter 本地化在嵌入式 iOS 应用程序中重新加载两次
- javascript - 延迟确定用户的语言
- c# - C# 应用程序 - 输入字符串的格式不正确
- javascript - 从父组件reactjs中清除react-select v2输入字段?
- javascript - 想要动态处理关于分页的页码显示:ReactJS
- metrics - 在训练期间使用 tf.metrics.mean_iou
- java - 为什么我在下面的代码中收到此错误“方法getHeader(String)对于HttpRequest类型未定义”?