微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 文件中的递归键值

一个文件有两个列[可以理解为键和值]:

k1 v1
k2 v2
k3 v3
k4 k1
k5 k4

现在我想从这个文件输出这样的:

k1 v1
k2 v2
k3 v3
k4 k1 v1
k5 k4 k1 v1

如果某个键的值是另一个键,那么将该值转换为该行.怎么能接近这个

这可能是多值键以及k1 v1和k1 x1.对于多值键,希望有一个包含两个值的新行:

k1 v1
k1 x1
k2 k1 

改变为

k1 v1
k1 x1
k2 k1 v1
k2 k1 x1

解决方法:

python代码

from collections import OrderedDict
dict = {}
fp = open('test.txt')
for line in fp.readlines():
    line = line.split(" ")
    dict[line[0]] = line[1].replace('\n','')
fp.close() 
dict = OrderedDict(sorted(dict.items(), key=lambda t: t[0]))
for key in dict:
    if dict.has_key(dict[key]):
        print key,dict[key],dict[dict[key]]
    else:
        print key,dict[key]

文件

k1 v1
k2 v2
k3 v3
k4 k1
k5 k4
k6 k2
k7 v8

结果:

k1 v1
k2 v2
k3 v3
k4 k1 v1
k5 k4 k1
k6 k2 v2
k7 v8

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐