使用给定的密钥对元组,我需要创建一个字典

时间:2013-12-13 23:04:39

标签: python dictionary tuples

使用my_file.txt中的密钥对元组创建一个字典。如果键存在多次具有不同值,请使用第一个看到的值 (例如,我们遇到密钥的第一个实例)。

my_file = [('a', '1')
           ('b', '2')
           ('c', '3')
           ('d', '4')
           ('e', '5')]

def makehtml(fname):
with open(fname) as f:      # reads lines from a fname file
    for line in f:
        tups = line2tup(line,"--")  # turns each line into a 2 elem tuple on it's own line.
        print tups

如何从my_file键/值对创建字典。我已经尝试过dict(my_file),但它告诉我“ValueError:字典更新序列元素#0的长度为1; 2是必需的”。

2 个答案:

答案 0 :(得分:0)

dict构造函数接受元组列表作为参数:

>>> my_file = [('a', '1'),
           ('b', '2'),
           ('c', '3'),
           ('d', '4'),
           ('e', '5')]
>>> dict(my_file)
{'e': '5', 'd': '4', 'c': '3', 'b': '2', 'a': '1'}
编辑:啊,我遇到了你的问题。假设您的文件如下所示:

   ('a', '1')
   ('b', '2')
   ('c', '3')
   ('d', '4')
   ('e', '5')

然后这应该有效:

def makehtml(fname):
    with open(fname) as f:
        d = {}
        for line in f:
            key, value = line2tup(line,"--")  
            d[key] = value
    return d

答案 1 :(得分:0)

这个怎么样:

mydict = {}
for line in open(fname):
    k, v = line.split()
    mydict[int(k)] = v