python输入两个词典形成一个单独的文本文件

时间:2016-02-12 09:05:35

标签: python algorithm

我必须在python中实现稳定的婚姻问题,其中' n '男人和' n '女性每个都会有一个偏好列表,算法会根据它进行匹配。 我必须输入参与者的数量' n'以及单个文本文件中的男性和女性偏好。

现在我正在使用两个文件输入,算法工作正常,但我需要将所有数据保存在一个文件中。

我的代码是

import copy
f = open('C:\\Users\\Rakshith\\Desktop\\ADA project\\uyt.txt','r')

malepreferences = eval(f.read())
print(malepreferences)
g = open('C:\\Users\\Rakshith\\Desktop\\ADA project\\uuu.txt','r')
femalepreferences=eval(g.read())
print(femalepreferences)

我的两个输入文件之一看起来像

{
 'john':  ['jennifer', 'alexis', 'abby', 'megan', 'kate', 'anna', 'samantha', 'ashley', 'emma', 'jesse'],
 'harvey':  ['abby', 'emma', 'jennifer', 'anna', 'alexis', 'samantha', 'ashley', 'kate', 'megan', 'jesse'],
 'kumar':  ['emma', 'alexis', 'jennifer', 'anna', 'ashley', 'samantha', 'megan', 'jesse', 'abby', 'kate'],
 'David':  ['megan', 'samantha', 'anna', 'jesse', 'emma', 'alexis', 'kate', 'ashley', 'abby', 'jennifer'],
 'jim':   ['kate', 'anna', 'ashley', 'abby', 'samantha', 'alexis', 'jennifer', 'megan', 'emma', 'jesse'],
 'fred': ['ashley', 'jennifer', 'anna', 'jesse', 'alexis', 'megan', 'abby', 'kate', 'emma', 'samantha'],
 'peter':  ['jesse', 'alexis', 'megan', 'ashley', 'abby', 'jennifer', 'anna', 'emma', 'kate', 'samantha'],
 'patel':  ['jennifer', 'alexis', 'emma', 'samantha', 'megan', 'abby', 'kate', 'ashley', 'jesse', 'anna'],
 'mike':  ['emma', 'abby', 'anna', 'jesse', 'ashley', 'jennifer', 'samantha', 'megan', 'kate', 'alexis'],
 'randy':  ['jennifer', 'samantha', 'kate', 'jesse', 'alexis', 'ashley', 'anna', 'abby', 'megan', 'emma']}

我的输入文件应如下所示

n

m1: w11, w12, ..., w1n

mn: wn1, wn2, ..., wnn

...

...

...

w1: m11, m12, ..., m1n

wn: mn1, mn2, ..., mnn

2 个答案:

答案 0 :(得分:0)

首先,你不应该存储字典的repr并评估它。您应该使用正确的序列化格式,即JSON,它看起来非常相似,可以轻松安全地解析。

然后,您只需存储所需的两个词典的列表,然后阅读它们:

f = open('C:\\Users\\Rakshith\\Desktop\\ADA project\\combined.txt','r')
data = json.load(f)
males, females = data

答案 1 :(得分:0)

您应该以Daniel提到的JSON格式存储数据。 你可以用这样的结构:

{
    "Name": "john",
    "Preference":[
        {
            "Name" : "jennifer",
            "Name" : "alexis",
            ......
            "Name" : "jesse",
        }
    ]   
}

要阅读JSON文件,您需要内置库:json

import json
with open('C:\\Users\\Rakshith\\Desktop\\ADA project\\uyt.txt','r') as f:
    data = json.load(f)