好的,我需要创建一个程序,接受按空格划分的有序对,然后将它们添加到字典中 我是
points2dict(["3 5"])
{"3":"5"}
如何让python识别第一个数字是键,第二个数字是值???
答案 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循环甚至内置映射更好(延迟执行允许生成器堆栈而不是为中间结果分配内存)。