将分隔字符串列表转换为字典

Convert a list of delimited strings to a dictionary

我有一个表单的输入列表

c = ['a|b', 'c|d', 'e|f']

我想将其转换为 dict,如

c_dict = {'b': 'a', 'd': 'c', 'f': 'e'}

我可以通过这样的理解来做到这一点

c_dict = {el.split('|')[1]: el.split('|')[0] for el in c}

但是重复的el.split看起来很难看。有没有更简洁的一行来得到想要的结果?

one-liner 案例应该这样做:

print(dict(reversed(i.split('|')) for i in ['a|b', 'c|d', 'e|f']))

这里的事情是将条目按 | 拆分,并将第二个值作为字典的键,第一个作为字典的值。所以基本上你可以这样做:

def list_to_dict(entries):
    res = {}
    for entry in entries:
        item = entry.split('|')
        res[item[1]] = item[0]
    return res

或更短的版本是:

def list2dict(entries):
    return dict(reversed(x.split('|')) for x in entries)

作为 dict([[1,2]])={1: 2} 我们可以将其用作:

c = ['a|b', 'c|d', 'e|f']
c_dict = dict(t.split("|")[::-1] for t in c)

由@deceze

编辑