python 字典一个key对应多个value时如何拆分成一一对应?

如图怎样将左边的文本处理成右边这样? 不用字典也可以
2023-12-09 10:16:40
推荐回答(3个)
回答1:

>>> mapper
{1: ['a', 'b', 'c'], 2: ['d'], 3: ['e'], 4: ['f', 'g'], 5: ['h'], 6: ['i'], 7: ['a', 'g']}
>>> def itertransfer(mapper):
...     for k, values in mapper.items():
...         for v in values:
...             yield (k, v)
... 
>>> for k, v in itertransfer(mapper):
...     print k, v
... 
1 a
1 b
1 c
2 d
3 e
4 f
4 g
5 h
6 i
7 a
7 g
>>> 
>>> result = []
>>> for k, v in mapper.items():
...     result.extend(zip([k,]*len(v), v))
... 
>>> result
[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'd'), (3, 'e'), (4, 'f'), (4, 'g'), (5, 'h'), (6, 'i'), (7, 'a'), (7, 'g')]
>>>

回答2:

dic = {"1":"a,b,c", "2":"d"}
for k, v in dic.items():
valus = v.split(",")
for value in values:
print k, value

回答3:

for each in d:
    for v in d[each]:
        print each, v