如何在Python中制作(列表,字典)

时间:2015-05-17 16:40:48

标签: python dictionary

如何制作(列表,字典):

n = ('banana', 5, 'apple', 400, 'orange', 250, 'peach', 300)

到:

(fruit -> price)

示例:

for..print all
    banana -> 5
    apple -> 400
    orange -> 250
    peach -> 300

1 个答案:

答案 0 :(得分:4)

您可以使用dictzip

n = ('banana', 5, 'apple', 400, 'orange', 250, 'peach', 300)

print(dict(zip(n[::2],n[1::2])))
{'orange': 250, 'peach': 300, 'banana': 5, 'apple': 400}

zip(n[::2],n[1::2])创建[('banana', 5), ('apple', 400), ('orange', 250), ('peach', 300)]然后在结果上调用dict会从每个元组创建键/值对。

更有效地使用iter来避免切片和创建新列表:

n = ('banana', 5, 'apple', 400, 'orange', 250, 'peach', 300)
it = iter(n)
print(dict(zip(it,it)))

打印项目:

for fruit, cost in dict(zip(it,it)).items():
    print("{} -> {}".format(fruit, cost))

apple -> 400
orange -> 250
banana -> 5
peach -> 300

如果您只想使用对,请使用zip:

for fruit, cost in zip(it,it):
    print("{} -> {}".format(fruit, cost))

banana -> 5
apple -> 400
orange -> 250
peach -> 300

dicts没有顺序,这就是为什么输出在两者之间的顺序不同。