0

我觉得 RegEx 是要走的路,但到目前为止我喜欢我的列表的简单性,而且我对 RegEx 还不太深入。

我需要能够循环浏览此列表:

dat_list = ["Red_Ball","Yellow_Ball","Purple_Ball","Green_Ball"]

> "Red_Ball" in dat_list
    True

> "Purple_Turnip" in dat_list
    True

> "Beige_Sandwich" in dat_list
    False

我知道我也可以只检查列表,但它不会检查通配符字符串,如“Purple_Turnip”..

4

1 回答 1

1

仅检查列表(或集合)中的成员资格很简单,但是如果您想根据模式过滤列表,则无法(微不足道)获得哈希表查找的性能优势,因此您不妨返回列出理解。

[item for item in alist if re.match(expr, item)]

或者

[item for item in alist if item.startswith(pat)]

甚至

rx = re.compile(expr)
filter(rx.match, alist)
于 2013-09-25T03:09:09.527 回答