通配符字符串搜索

Wildcard string search

我有一段代码试图在 for 循环期间将 'i' 插入到 f 字符串中。但是,我希望 Python 根据 'i' 是否包含某个字符串 ('nogood') 来过滤掉它。我注意到它适用于“=”或 'in',但不适用于 'like'。我已经尝试了以下但它没有编译...

i_list = ['hello', 'good', 'bad', 'bye', 'yup', 'yupnogood', 'hellogood']
final_list = [f"{i}_hello" for i in temp_list if i like '%good%']

您知道是否有 shorthand 方法来实现通配符搜索(如果这样做是好的做法)?

对于这种简单形式的通配符搜索,您可以使用 in 运算符:

i_list = ['hello', 'good', 'bad', 'bye', 'yup', 'yupnogood', 'hellogood']
final_list = [f"{i}_hello" for i in temp_list if 'nogood' in i]

如果你想要更复杂的东西,你可以看看正则表达式。