如何用Python实现类似行列转置的操作?

如何用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

回到顶部