python - 在 Python 中创建列表时如何忽略连字符?
问题描述
这里是非常绿色的 python 用户。我有一个 .csv 文件,其中包含数百种葡萄酒、它们的价格和评级,以及销售特定葡萄酒的酒厂。我正在尝试编写一个函数,该函数返回给定葡萄酒的所有酒厂的编号,如下所示:
def all_wineries(wine):
wineries = []
for i in range(len(csv_data)):
if wine.lower() in cell(i, "variety").lower():
wineries.append(cell(i, "winery"))
return list(set(wineries))
x = all_wineries("Pinot Noir")
len(x)
但是,我没有注意到有些葡萄酒是连字符的(例如“Pinot Noir-Gamay”)并且这些葡萄酒包含在我的最终答案中。我如何忽略那些与我在函数中输入的不完全一致的葡萄酒?
解决方案
我在这里详细说明 Ed Ward 的评论。
wine.lower().strip() == cell(i, "variety").lower().strip()
lower() 函数将字符串转换为小写。strip() 函数从字符串的开头和结尾删除所有空格(空格、制表符)。在您正在寻找的葡萄酒和您正在寻找的葡萄酒上使用这两个功能。这两种葡萄酒只有在完全相同的情况下才会匹配(没有连字符)。
def all_wineries(wine):
wineries = []
for i in range(len(csv_data)):
if wine.lower().strip() == cell(i, "variety").lower().strip()
wineries.append(cell(i, "winery"))
return list(set(wineries))
x = all_wineries("Pinot Noir")
len(x)
推荐阅读
- python - 如何从 Django InMemoryUploadedFile 解析 pdf?
- javascript - React-native:除非更改状态,否则绝对定位的组件不会完全渲染
- r - 我们可以在 Rblogdown 网页中创建参考链接吗
- javascript - 如何将事件添加到子组件?
- objective-c - 如何将 OpenGLES 着色器转换为与 Metal 兼容的着色器?
- php - Woocommerce 追加销售 CSV - 为什么它有时只工作?
- azure-data-factory - Azure VM 上 SQL Server 的 IR 设置
- jquery - 检查单选按钮是否具有列表中的值
- javascript - 两个字符串相加会产生意想不到的结果
- ajax - 浏览器内存增加了每秒 6 次 ajax 调用的问题