Python 如何分割密钥内的内容

Python 如何分割密钥内的内容,python,dictionary,Python,Dictionary,字典在下面 my = [('a','/home/ma'),('a','/home/mk')] 我的代码: {b:a for a,b in my } 我的输出: {'/home/ma': 'a', '/home/mk': 'a'} 预期产出: {'ma': 'a', 'mk': 'a'} 只需将代码中的b:a替换为os.path.split(b)[-1]:a,或者更简洁地(根据@BearBrown注释),os.path.basename(b):a(您还需要导入操作系统) {b.split(

字典在下面

my = [('a','/home/ma'),('a','/home/mk')]
我的代码:

{b:a for a,b in my }
我的输出:

{'/home/ma': 'a', '/home/mk': 'a'}
预期产出:

{'ma': 'a', 'mk': 'a'}

只需将代码中的
b:a
替换为
os.path.split(b)[-1]:a
,或者更简洁地(根据@BearBrown注释),
os.path.basename(b):a
(您还需要导入操作系统)

{b.split('/')[2]:a代表a,b在my}

或者如果你总是想要最后一个斜杠

{list(reversed(b.split('/')))[0]:a for a,b in my}

你对如何从
'/home/ma'
'ma'
有一个大致的想法,而你只是不知道如何在字典理解的关键部分做到这一点吗?
b.rsplit('/',1)[-1]
…我知道这是一个简单的用例,但是为了方便起见:在处理路径时,使用
pathlib
可能比使用
os.path
更好。这可以通过
Path('/home/mk')实现。name
{list(reversed(b.split('/')))[0]:a for a,b in my}