我有一个元组,例如('key1', 'value1'),我想将其添加到字典中,所以它像{'key1': 'value1'},但不做类似dictionary[t[0]] = t[1]的事情。

上下文如下,我有一个类似的重复规则:

FREQ=WEEKLY;UNTIL=20120620T233000Z;INTERVAL=2;BYDAY=WE,TH

我想要一个像这样的字典:
recurrence = {
    'freq' : 'weekly',
    'until' : '20120620T233000Z',
    'interval' : '2',
    'byday' : 'we,th'
}

我正在做这样的事情:
for rule in recurrence.split(';'):
    r = rule.split('=')
    rules[r[0]] = r[1]

我一点也不喜欢。有没有更Python化的方式来做到这一点?

最佳答案

使用理解:

rules.update(rule.split('=', 1) for rule in recurrence.split(';'))

如果dict rules已经存在,则为0。否则使用
rules = dict(rule.split('=', 1) for rule in recurrence.split(';'))

这是可行的,因为dict构造函数和dict.update都接受产生键/值对的迭代器。

关于python - 将2值元组添加到dict作为键:value,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11000616/

10-15 03:34