繁体   English   中英

在python中,如何通过匹配原始列表中的字符串模式从字符串列表中提取子列表

[英]In python, how do i extract a sublist from a list of strings by matching a string pattern in the original list

如何使用匹配模式返回字符串列表的子列表。 比如我有

myDict=['a', 'b', 'c', 'on_c_clicked', 'on_s_clicked', 's', 't', 'u', 'x', 'y']

我想回来:

myOnDict=['on_c_clicked', 'on_s_clicked']

我认为列表推导会起作用,但我对此的确切语法感到困惑。

import re
myOnDict = [x for x in myDict if re.match(r'on_\w_clicked',x)]

应该这样做......


当然,对于这个简单的示例,您甚至不需要正则表达式:

myOnDict = [x for x in myDict if x.startswith('on')]

要么:

myOnDict = [x for x in myDict if x.endswith('clicked')]

甚至:

myOnDict = [x for x in myDict if len(x) > 1]

最后,作为一些不请自来的建议,您可能需要重新考虑变量名。 除了PEP8命名约定,这些是list对象,而不是dict对象。

只是一个猜测,但是...

for entry in myDict:
    if re.search("^on", entry):
        myOnDict.append(entry)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM