将具有不等元素数的两个列表连接到字典

时间:2015-05-16 21:27:31

标签: python

所以我可以说我有两个列表,一个是导演的名字,另一个是电影的名字。

所以:

directors = ['Tarr', 'Lynch' 'Coen']
movies = ['movie1', 'movie2', 'movie3', 'movie4']

我想要的最终结果:

{'movie1':'Tarr', 'movie2':'Tarr', 'movie3':'Lynch', 'movie4':'Tarr'}

但是等一下?科恩怎么样?我想要的另一件事是随机选择的值(导演)。

我真正遇到麻烦的部分是强制字典显示4个元素。 Python只给了我3,因为directors列表只包含3个导演,即使有4部电影。

谢谢你们。

3 个答案:

答案 0 :(得分:4)

试试这个:

from random import choice

results = {}
for movie in movies:
    results[movie] = choice(directors)

这将为电影列表中的每部电影选择一个随机导演,并将其存储在结果字典中。

你可以用字典理解做同样的事情:

from random import choice

results = {x: choice(directors) for x in movies}

答案 1 :(得分:2)

您可能想告诉我们您是否选择更换。无论如何,我希望这有帮助(这是替换):

import random

directors = ['Tarr', 'Lynch' 'Coen']
movies = ['movie1', 'movie2', 'movie3', 'movie4']
my_dictionary = {}
for each_movie in movies:
    my_dictionary[each_movie] = random.choice(directors)
print my_dictionary

答案 2 :(得分:2)

要使Ben's answer更加pythonic,请使用dictionary comprehension(Python≥2.7):

import random

directors = ['Tarr', 'Lynch' 'Coen']
movies = ['movie1', 'movie2', 'movie3', 'movie4']

results = { movie : random.choice(directors) for movie in movies }

(我只想import random代替from random import choice,所以我可以通过其完全限定名称来引用random.choice,从而获得告诉读者它正在执行随机选择。)