从最后一个句点后的字符串中提取字符
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
我有一个 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