Skip to main content
 首页 » 编程设计

Python:检查列表中是否有任何子字符串的优雅解决方案

2025年05月04日23unruledboy

<分区>

在关闭此问题之前,请尝试理解这个问题 - 它有点不同,但看起来像是很多被否决的问题。

我正在寻找一种简单的方法来检查字符串的任何子字符串是否在字符串列表中。输入类似于 2018_JAN_BGD,我想将其中的月份信息转换为(年)季度信息。例如,Q1 将是一月、二月和三月。所以我正在寻找一种方法来检查 2018_JAN_BGD 中的任何子字符串是否包含 JAN、FEB 或 MAR。我可以通过编写 12 个(全年)带有 or 的 if-else 子句来做到这一点,但我觉得 Python 中有更优雅的解决方案。我正在尝试:

def tellQuarter(month): 
    Q1 = ('JAN','FEB','MAR') 
    Q2 = ('APR','MAY','JUN') 
    Q3 = ('JUL','AUG','SEP') 
    Q4 = ('OCT','NOV','DEC') 
    if any(for mon in Q1 in month): 
        return ("Q1") 
    if any(for mon in Q2 in month): 
        return ("Q2") 

这当然是不正确的(语法无效),但我不知道如何正确放置它。基本上,我想遍历 Q1,并检查是否有任何字符串是 month 的子字符串。

我的意思是我能做到

for mon in Q1: 
    if mon in month: 
        return "Q1" 

但是没有更优雅的单行解决方案吗?