Python中的拆分表名

Python中的拆分表名,python,Python,我在python table1='123_test_abc_de' table2='123_test_10_abc_de' table3='123_red_ce' table4='123_utc' 现在从这个列表中,我想像下面那样拆分表 abc_de abc_de red_ce utc repo=table.split("_", 1)[-1] 我试过下面的方法 abc_de abc_de red_ce utc repo=table.split("_", 1)[-1] 我得到了每个表的以

我在
python

table1='123_test_abc_de'
table2='123_test_10_abc_de'
table3='123_red_ce'
table4='123_utc'
现在从这个列表中,我想像下面那样拆分表

abc_de
abc_de
red_ce
utc
repo=table.split("_", 1)[-1]
我试过下面的方法

abc_de
abc_de
red_ce
utc
repo=table.split("_", 1)[-1]
我得到了每个表的以下结果

test_abc_de
test_10_abc_de
red_ce
utc

如何实现我的目标。

如果表是一个字符串列表,如您所说:

map(lambda x: '_'.join(x.split('_')[-2:]),table)
将为您提供所需的新字符串列表。我还发现了“rsplit”:

map(lambda x: '_'.join(x.rsplit('_',2)[-2:]),table)
对于变量中的单个此类字符串,只需使用
rsplit

'_'.join(table1.rsplit('_',2)[-2:])
长字符串

如果所有表名都包含在一个长字符串中,并用空格分隔,则只需拆分该字符串:

map(lambda x: '_'.join(x.rsplit('_',2)[-2:]),tableNamesString.split())

如果该表是一个字符串列表,如您所说:

map(lambda x: '_'.join(x.split('_')[-2:]),table)
将为您提供所需的新字符串列表。我还发现了“rsplit”:

map(lambda x: '_'.join(x.rsplit('_',2)[-2:]),table)
对于变量中的单个此类字符串,只需使用
rsplit

'_'.join(table1.rsplit('_',2)[-2:])
长字符串

如果所有表名都包含在一个长字符串中,并用空格分隔,则只需拆分该字符串:

map(lambda x: '_'.join(x.rsplit('_',2)[-2:]),tableNamesString.split())

可能是正则表达式。可能是正则表达式。实际上,表是一个
字符串
而不是
字符串的列表
@Virureddy我更新了我的答案以解决长字符串问题。你的问题不清楚你到底有什么,名字是从哪里来的。一旦你有了一个单一的名字,
rsplit
将完成这项工作。如果这仍然不是您想要的,请修改您的问题,并具体说明如何检索名称,或者您以何种数据类型保存它们。如果您在不同的变量中有一个名称(这将非常奇怪),则需要
rsplit
每个变量。实际上,表是一个
字符串
而不是
字符串的列表
@Virureddy我更新了我的答案,以解决长字符串的问题。你的问题不清楚你到底有什么,名字是从哪里来的。一旦你有了一个单一的名字,
rsplit
将完成这项工作。如果这仍然不是您想要的,请修改您的问题,并具体说明如何检索名称,或者您以何种数据类型保存它们。如果在不同的变量中有一个名称(这将非常奇怪),则需要
rsplit