加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 文件中的递归键值

发布时间:2020-12-20 13:46:30 所属栏目:Python 来源:网络整理
导读:有一个文件有两个列[可以理解为键和值]: k1 v1k2 v2k3 v3k4 k1k5 k4 现在我想从这个文件输出这样的: k1 v1k2 v2k3 v3k4 k1 v1k5 k4 k1 v1 如果某个键的值是另一个键,那么将该值转换为该行.怎么能接近这个 这可能是多值键以及k1 v1和k1 x1.对于多值键,希望
有一个文件有两个列[可以理解为键和值]:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读