我觉得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”这样的通配符字符串。
答案 0 :(得分: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)