从最后一个句点后的字符串中提取字符

Extract characters from string after last period

我有一个 orderedDict:

dict2.items():
[('A', <function __main__.percentile_50>),
 ('B', <function numpy.core.fromnumeric.sum>),
 ('C', <function numpy.core.fromnumeric.sum>),
 ('D', <function numpy.core.fromnumeric.mean>),
 etc...

我想创建一个列来说明所使用的描述(percentile_50、求和、均值等)我正在考虑找到最后一个 . 然后抓取后面的字符直到 >。所以我最终会得到 percentile_50, sum, sum, mean, etc.。有什么建议吗?

如果你的元组中有字符串,你可以在列表理解中使用 split :

>>> l=[('A', '<function __main__.percentile_50>'),
...  ('B', '<function numpy.core.fromnumeric.sum>'),
...  ('C', '<function numpy.core.fromnumeric.sum>'),
...  ('D', '<function numpy.core.fromnumeric.mean>')]
>>> 
>>> [(i,j.strip('>').split('.')[-1]) for i,j in l]
[('A', 'percentile_50'), ('B', 'sum'), ('C', 'sum'), ('D', 'mean')]

但是如果您有函数对象,您可以使用函数的 __name__ 属性来提取名称:

>>> [(i,j.__name__) for i,j in l]
[('A', 'percentile_50'), ('B', 'sum'), ('C', 'sum'), ('D', 'mean')]

使用正则表达式的解决方案之一:

(?<=\.)([^.>]+)(?=>$)

DEMO