如何用Python实现类似行列转置的操作?
假如有以下数据————
喜欢养猫:张三 李四 李明
喜欢养狗:张三 赵飞 宋杰
喜欢养鹅:李四 宋杰 马超
用Python的话(或者用其他语言,或用Excel),采用何种方式可以将其处理成以下格式?
——————
张三:喜欢养猫 喜欢养狗
李四:喜欢养猫 喜欢养鹅
李明:喜欢养猫
赵飞:喜欢养狗
宋杰:喜欢养狗 喜欢养鹅
马超:喜欢养鹅
回答:
python, 一个list和dict嵌套结构的简单转换
>>> def print_d(d):... for k, v in d.items():
... print('{}: {}'.format(
... k, ' '.join(v)))
...
>>> d1 = {
... "喜欢养猫": ["张三", "李四", "李明"],
... "喜欢养狗": ["张三", "赵飞", "宋杰"],
... "喜欢养鹅": ["李四", "宋杰", "马超"]
... }
>>>
>>> print_d(d1)
喜欢养猫: 张三 李四 李明
喜欢养狗: 张三 赵飞 宋杰
喜欢养鹅: 李四 宋杰 马超
>>> d2 = {}
>>>
>>> for label, names in d1.items():
... for name in names:
... d2.setdefault(name, []).append(label)
...
>>> print_d(d2)
张三: 喜欢养猫 喜欢养狗
李四: 喜欢养猫 喜欢养鹅
李明: 喜欢养猫
赵飞: 喜欢养狗
宋杰: 喜欢养狗 喜欢养鹅
马超: 喜欢养鹅
以上是 如何用Python实现类似行列转置的操作? 的全部内容, 来源链接: utcz.com/p/937714.html