Python字典有序对

时间:2011-10-10 20:21:09

标签: python dictionary

好的,我需要创建一个程序,接受按空格划分的有序对,然后将它们添加到字典中  我是

points2dict(["3 5"])  
{"3":"5"}

如何让python识别第一个数字是键,第二个数字是值???

3 个答案:

答案 0 :(得分:3)

使用split

In [3]: pairs = ['3 5', '10 2', '11 3']

In [4]: dict(p.split(' ', 1) for p in pairs)
Out[4]: {'10': '2', '11': '3', '3': '5'}

答案 1 :(得分:1)

values = [
    '3 5',
    '6 10',
    '20 30',
    '1 2'
]
print dict(x.split() for x in values)
# Prints: {'1': '2', '3': '5', '20': '30', '6': '10'}

答案 2 :(得分:0)

对于只有数字对的简单示例,总是用空格分隔,不需要验证:

def points_to_dict(points):
    #create a generator that will split each string of points
    string_pairs = (item.split() for item in points)
    #convert these to integers
    integer_pairs = ((int(key), int(value)) for key, value in string_pairs)
    #consume the generator expressions by creating a dictionary out of them
    result = dict(integer_pairs)
    return result

values = ("3 5", ) #tuple with values
print points_to_dict(values) #prints {3: 5}

重要的是要注意这将给你整数键和值(我假设你想要的是它,而且无论如何它都是一个更有趣的变换)。这也比python循环甚至内置映射更好(延迟执行允许生成器堆栈而不是为中间结果分配内存)。